.net转java 学习笔记 (四) 第一个JDBC程序,java连接数据库
一:首先开始配置JDBC的环境
1:这里我采用sqlserver2008数据库
2:java连接 sqlserver数据库的时候,需要一个包,由于我的jdk jre为1.8,所以我需要的jar包的名字是:sqljdbc42.jar
下载地址:
链接:https://pan.baidu.com/s/1wjGPQmT5DpkBGUf5IgXskA 密码:bhng
如果是其它版本可以去官网下载:
http://www.microsoft.com/zh-cn/download/details.aspx?id=11774 (最新版4.0)
http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 (3.0版)
http://www.microsoft.com/zh-cn/download/details.aspx?id=2505 (2.0版)
3:配置环境变量 ;
电脑属性----高级设置-----高级-----环境变量
找到ClassPath,注意如果已经存在不要把之前的删掉了,增加变量:
这个变量就是你的jar包放的位置:
E:\Program Files\Java\jdbc\sqljdbc_6.0\chs\jre8\sqljdbc42.jar
右单击工程名,依次选择 Build Path → Configure Build Path,在打开的窗口的右边选择 Libraries标签,然后单击 Add External JARs,找到 sqljdbc4jar 文件并打开,然后单击 OK 完成构建路径的配置

提示:也可以把sqljdbc4jar类 放到jre/lib/ext下,并放到tomcat/lib下
这样就可以应用到所有jsp文件,减少对每个项目进行sqljdbc4jar的加载;


2:开始写代码了,用Java Project连接数据库
首先配置好JDBC
如果不成功的话,可能是jdbc没有配置好,试下重新引用jar;
右键项目-----build path -----configuer build path --------order and Export---把jre8.0和jar包都勾上

然后File->New->Java Project 我取名叫 myJdbcDemoForJavaProject
然后右键项目->new -> class 我取名叫Demo

然后再main函数中写代码,当然是前提你有建好sqlserver数据库,数据库这里就不再做过多的介绍;
1 import java.sql.*; 2 3 public class Demo { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";// SQL数据库引擎 8 String connectDB = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=lkj";// 数据源 9 try { 10 Class.forName(JDriver);// 加载数据库引擎,返回给定字符串名的类 11 } catch (Exception e) { 12 System.out.println("加载数据库引擎失败"); 13 System.exit(0); 14 } 15 System.out.println("数据库驱动成功"); 16 try { 17 18 String user = "sa"; 19 String password = "123456"; 20 Connection con = DriverManager.getConnection(connectDB, user, password);// 连接数据库对象 21 System.out.println("连接数据库成功"); 22 Statement stmt = con.createStatement();// 创建SQL命令对象 23 System.out.println("开始读取数据"); 24 ResultSet rs = stmt.executeQuery("SELECT * FROM FirstLevelTitle");// 返回SQL语句查询结果集(集合) 25 while (rs.next()) { 26 // 输出每个字段 27 System.out.println(rs.getString("id") + "\t" + rs.getString("TitleName")); 28 } 29 System.out.println("读取完毕"); 30 stmt.close(); 31 con.close(); 32 33 } catch (Exception e) { 34 e.printStackTrace(); 35 System.out.println("数据库连接错误"); 36 System.exit(0); 37 } 38 } 39 40 }
然后我们直接右键 ->Run as,选择java Application,直接看到运行结果如下图,说明已经连成功了!

这样应该就OK了
三:用 jsp 连接数据库
需要注意的jsp和 java project不一样 ;
首先 new ------other-----web ---dynamic web project

我取名叫MyJDBCDemo
在项目中新建包 MyJDBCDemo, 和在WebContent中新建文件夹 myjdbcdemo

注意了下面是最关键的一个部分,一个要把jdbc.jar包copy到Web-INF下面的lib中,否则数据库在jsp中连不上,只能在main函数中连上

在包中新建价格class, Control,dbHelper,Demo,newsModel
在文件夹下新建jsp文件 ,NewFile.jsp

他们的代码如下:
dbHelper.java
1 package MyJDBCDemo; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 public class dbHelper { 10 private static final String DRIVER_CLASS ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; 11 private static final String DATABASE_URL = "jdbc:sqlserver://127.0.0.1:1433;databasename=lkj"; 12 13 private static final String DATABASE_USER ="sa"; 14 private static final String DATABASE_PASSWORD = "123456"; 15 16 public static Connection getConnection(){ 17 Connection dbConnection = null; 18 try{ 19 Class.forName(DRIVER_CLASS); 20 dbConnection = DriverManager.getConnection(DATABASE_URL,DATABASE_USER,DATABASE_PASSWORD); 21 } 22 catch(Exception e){ 23 e.printStackTrace(); 24 } 25 return dbConnection; 26 27 } 28 29 public static void closeConnection(Connection dbConnection){ 30 try{ 31 if(dbConnection != null && (!dbConnection.isClosed())){ 32 dbConnection.close(); 33 } 34 } 35 catch(SQLException sqlE){ 36 sqlE.printStackTrace(); 37 } 38 } 39 40 public static void closeResultSet(ResultSet res){ 41 try{ 42 if(res != null){ 43 res.close(); 44 res = null; 45 } 46 } 47 catch(SQLException e){ 48 e.printStackTrace(); 49 } 50 } 51 52 public static void closeStatement(Statement stat){ 53 try{ 54 if(stat != null){ 55 stat.close(); 56 stat = null; 57 } 58 } 59 catch(SQLException e){ 60 e.printStackTrace(); 61 } 62 } 63 }
newsModel.java
1 package MyJDBCDemo; 2 3 import java.util.Date; 4 5 public class newsModel { 6 private int id; 7 private String titleName; 8 private String creator; //创建者 9 private Date createTime; 10 11 public newsModel(int id,String titleName,String creator,Date createTime) 12 { 13 this.id = id; 14 this.titleName = titleName; 15 this.creator = creator; 16 this.createTime = createTime; 17 } 18 19 20 public int getId(){ 21 return this.id; 22 } 23 24 public String getTitleName(){ 25 return titleName; 26 } 27 28 29 public String getCreator(){ 30 return creator; 31 } 32 33 34 public Date getCreateTime(){ 35 return createTime; 36 } 37 38 39 40 public void setId(int par){ 41 this.id = par; 42 } 43 44 45 46 public void setTitleName(String par){ 47 this.titleName = par; 48 } 49 50 51 52 public void setCreator(String par){ 53 this.creator = par; 54 } 55 56 57 58 public void setCreateTime(Date par){ 59 this.createTime = par; 60 } 61 }
Control.java
1 package MyJDBCDemo; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.util.ArrayList; 8 import java.util.Date; 9 import java.util.List; 10 11 12 public class Control { 13 14 public List<newsModel> getAllFirstLevelTitleList2(){ 15 List<newsModel> list =new ArrayList<newsModel>(); 16 Connection dbConnection = null; 17 PreparedStatement pStatement = null; 18 ResultSet res = null; 19 try{ 20 dbConnection = dbHelper.getConnection(); 21 String sql = " select * from FirstLevelTitle order by Createtime desc "; 22 pStatement = dbConnection.prepareStatement(sql); 23 res = pStatement.executeQuery(); 24 while(res.next()){ 25 int id = res.getInt("id"); 26 String Title = res.getString("TitleName"); 27 String creator = res.getString("Creator"); 28 Date time = res.getDate("CreateTime"); 29 newsModel fTitle = new newsModel(id, Title, creator, time); 30 list.add(fTitle); 31 } 32 }catch(SQLException sqlE){ 33 sqlE.printStackTrace(); 34 }finally{ 35 dbHelper.closeResultSet(res); 36 dbHelper.closeStatement(pStatement); 37 dbHelper.closeConnection(dbConnection); 38 } 39 return list; 40 } 41 }
Demo.java
1 package MyJDBCDemo; 2 3 import java.util.*; 4 5 public class Demo { 6 public static void main(String[] args){ 7 Control c = new Control(); 8 List<newsModel> list = c.getAllFirstLevelTitleList2(); 9 System.out.println(list.size()); 10 } 11 }
NewFile.jsp
<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="MyJDBCDemo.*" %> <%@page import="java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> This is my JSP page. <br> <% Control c = new Control(); List<newsModel> list = c.getAllFirstLevelTitleList2(); %> <%=list.size() %> <% for(int i =0;i<list.size();i++){ newsModel nm = (newsModel)list.get(i); %> <%=nm.getId() %><br> <%=nm.getCreator() %><br> <%=nm.getTitleName() %><br> <%=nm.getCreateTime() %><br> <% } %> </body> </html>
另外sql server的数据库是这样的:

最后由于我要输出的是list.size(),是四条记录 ;并且输出了各种属性值,
在jsp中 run as 运行看结果

好了 ,jsp 的 jdbc 也完成了。你完成了吗?
如果有疑问可以加我qq,10200454
下一章将学习 ssh框架 (struts spring hibernate )中的 spring
浙公网安备 33010602011771号