.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 

 

posted @ 2018-09-27 18:00  时光流逝1  阅读(583)  评论(0)    收藏  举报