JDBC数据库应用开发.docx

上传人:b****6 文档编号:12770691 上传时间:2023-06-08 格式:DOCX 页数:24 大小:22.30KB
下载 相关 举报
JDBC数据库应用开发.docx_第1页
第1页 / 共24页
JDBC数据库应用开发.docx_第2页
第2页 / 共24页
JDBC数据库应用开发.docx_第3页
第3页 / 共24页
JDBC数据库应用开发.docx_第4页
第4页 / 共24页
JDBC数据库应用开发.docx_第5页
第5页 / 共24页
JDBC数据库应用开发.docx_第6页
第6页 / 共24页
JDBC数据库应用开发.docx_第7页
第7页 / 共24页
JDBC数据库应用开发.docx_第8页
第8页 / 共24页
JDBC数据库应用开发.docx_第9页
第9页 / 共24页
JDBC数据库应用开发.docx_第10页
第10页 / 共24页
JDBC数据库应用开发.docx_第11页
第11页 / 共24页
JDBC数据库应用开发.docx_第12页
第12页 / 共24页
JDBC数据库应用开发.docx_第13页
第13页 / 共24页
JDBC数据库应用开发.docx_第14页
第14页 / 共24页
JDBC数据库应用开发.docx_第15页
第15页 / 共24页
JDBC数据库应用开发.docx_第16页
第16页 / 共24页
JDBC数据库应用开发.docx_第17页
第17页 / 共24页
JDBC数据库应用开发.docx_第18页
第18页 / 共24页
JDBC数据库应用开发.docx_第19页
第19页 / 共24页
JDBC数据库应用开发.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JDBC数据库应用开发.docx

《JDBC数据库应用开发.docx》由会员分享,可在线阅读,更多相关《JDBC数据库应用开发.docx(24页珍藏版)》请在冰点文库上搜索。

JDBC数据库应用开发.docx

JDBC数据库应用开发

JDBC数据库应用开发

JDBC技术原理

JDBC是Sun公司提出的Java API中的一部分,其含义是用Java语言来访问数据库,是java程序访问数据库的标准接口。

在使用JDBC访问不同的数据库时,需要加载数据库的驱动程序,这些驱动程序由数据库厂商提供。

下面给出JDBC连接各种主流数据库的连接方式:

1、连接Oracle8/8i/9i/10g/11g(thin模式)

[html] viewplain copy

1.Class.forName("oracle.JDBC.driver.OracleDriver").newInstance();  

2.String url="JDBC:

oracle:

thin:

@localhost:

1521:

orcl"       //orcl为Oracle数据库的SID  

3.String user="test";  

4.String password="test";  

5.Connection con=DriverManager.getConnection(url,user,password);  

2、连接DB2数据库

[html] viewplain copy

1.Class.forName("com.ibm.db2.jcc.DB2Driver");  

2.String url="JDBC:

db2:

//localhost:

5000/testDb";  

3.String user="test"; String password="test";  

4.Connection con=DriverManager.getConnection(url,user,password);  

3、连接MySQL数据库

[html] viewplain copy

1.Class.forName("com.mysql.jdbc.Driver");  

2.String url="JDBC:

mysql:

//localhost:

8080/testDB";  

3.String user="test"; String password="test";  

4.Connection con=DriverManager.getConnection(url,user,password);  

4、连接SQLServer2000数据库

[html] viewplain copy

1.Class.forName("com.microsoft.JDBC.sqlserver.SQLServerDriver");  

2.String url="JDBC:

microsoft:

sqlserver:

//localhost:

1433;DatabaseName=testDb";  

3.String user="test"; String password="test";  

4.Connection con=DriverManager.getConnection(url,user,password);  

5、连接PostgreSQL数据库

[html] viewplain copy

1.Class.forName("org.postgresql.Driver");  

2.String url="JDBC:

postgresql:

//localhost/testDb";  

3.String user="test"; String password="test";  

4.Connection con=DriverManager.getConnection(url,user,password);  

6、连接Access数据库

[html] viewplain copy

1.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  

2.String url="JDBC:

odbc:

Driver={Microsoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/testDb/mdb");  

3.Connection conn=DriverManager.getConnection(url,"","");  

7、连接Sybase数据库

[html] viewplain copy

1.Class.forName("com.sybase.JDBC.SybDriver");  

2.String url="JDBC:

sybase:

Tds:

localhost:

5007/testDb";  

3.Properties pro=System.getProperties();  

4.pro.put("user","userId");  

5.pro.put("password","user_password");  

6.Connection con=DriverManager.getConnection(url,pro);  

8、连接informix数据库

[html] viewplain copy

1.Class.forName("com.informix.JDBC.ifxDriver");  

2.String url="JDBC:

informix-sqli:

localhost:

1533/testDb:

INFORMIXSERVER=myserver"user=testUser;password=testpassword"; Connection con=DriverManager.getConnection(url);  

JDBC连接数据库的过程很简单,以连接MySQL数据库为例,具体步骤如下:

(1)加载MySQL数据库连接的驱动程序。

可以到MySQL的官网上下载该驱动程序jar包,然后把jar包放到工程项目的WEB-INF/lib目录下。

加载数据库驱动程序使用的是Class.forName()方法,调用此方法会将制定的类加载到JVM中,其关键代码如下:

[html] viewplain copy

1.Class.forName("com.mysql.jdbc.Driver")  

(2)设置访问数据库的用户名、密码及连接URL。

不同的数据库其连接URL有所不同,但基本格式都是“JDBC协议+数据库的IP地址+数据库端口号+数据库名”。

关键代码如下:

[html] viewplain copy

1.String user = "root";  

2.String password = "root";  

3.String url = "jdbc:

mysql:

//localhost:

3306/database";  

(3)通过JDBCAPI的DriverManager类的getConnection()方法来创建与数据库之间的连接,getConnection()方法需要接受的参数有URL、用户名和密码,关键代码如下:

[html] viewplain copy

1.Connection conn = DriverManager.getConnction(url,user,password);  

(4)建立连接之后,使用该连接对象创建用户操作SQL语句的PreparedStatement对象,使用的是prepareStatement()方法,关键代码如下:

[html] viewplain copy

1.PreparedStatement ps = conn.prepareStatement(sql);  

(5)关闭数据库连接,释放系统资源,代码如下:

[html] viewplain copy

1.conn.close();  

下面给出一个JDBC连接MySQL数据库的完整代码示例,这个示例采用了MVC设计模式,单例模式。

JSP作为表现层,Servlet是业务控制层,Dao是操作实体类的持久层,详细代码如下:

User.java----用户实体类

[html] viewplain copy

1.package com.kj.test;  

2.  

3.public class User {  

4.  

5.    private Long id;  

6.    /** 姓名 */  

7.    private String name;  

8.    /** 性别 */  

9.    private String sex;  

10.    /** 年龄 */  

11.    private String age;  

12.  

13.      

14.    public Long getId() {  

15.        return id;  

16.    }  

17.  

18.    public void setId(Long id) {  

19.        this.id = id;  

20.    }  

21.  

22.    public String getName() {  

23.        return name;  

24.    }  

25.  

26.    public void setName(String name) {  

27.        this.name = name;  

28.    }  

29.  

30.    public String getSex() {  

31.        return sex;  

32.    }  

33.  

34.    public void setSex(String sex) {  

35.        this.sex = sex;  

36.    }  

37.  

38.    public String getAge() {  

39.        return age;  

40.    }  

41.  

42.    public void setAge(String age) {  

43.        this.age = age;  

44.    }  

45.      

46.}  

DBConn.java----MySQL数据库连接类

[html] viewplain copy

1.package com.kj.test;  

2.  

3.import java.sql.Connection;  

4.import java.sql.DriverManager;  

5.  

6.public class DBConn {  

7.  

8.    /** 加载连接 */  

9.    private static Connection conn = null;  

10.    /** MySQL数据库驱动名 */  

11.    private static final String DRIVERNAME = "com.mysql.jdbc.Driver";  

12.    /** 用户 */  

13.    private static final String USERNAME = "root";  

14.    /** 密码 */  

15.    private static final String PASSWORD = "root";  

16.    /** 连接URL */  

17.    private static final String URL = "jdbc:

mysql:

//localhost:

3306/test";  

18.      

19.    public static Connection getConn() {   

20.        try {  

21.            Class.forName(DRIVERNAME);  

22.            conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);  

23.        } catch (Exception e) {  

24.            e.printStackTrace();  

25.        }  

26.        return conn;  

27.    }  

28.      

29.    public static void main(String[] args) {  

30.  

31.        //测试是否已经连接成功  

32.        Connection conn = DBConn.getConn();  

33.        System.out.println("conn:

"+conn);  

34.          

35.    }  

36.  

37.}  

UserDao.java----持久化User模型到数据库

[html] viewplain copy

1.package com.kj.test;  

2.  

3.import java.sql.Connection;  

4.import java.sql.PreparedStatement;  

5.import java.sql.ResultSet;  

6.import java.util.ArrayList;  

7.import java.util.List;  

8.  

9.public class UserDao {  

10.  

11.    private static UserDao userDao = null;  

12.      

13.    /***  

14.     * 单例模式获取userDao  

15.     * @return  

16.     */  

17.    public static UserDao getInstance() {  

18.        if (userDao == null) {  

19.            userDao = new UserDao();  

20.        }  

21.        return userDao;  

22.    }  

23.      

24.    /**  

25.     * 保存一个user对象到数据库  

26.     * @param user  

27.     * @return  

28.     */  

29.    public boolean saveUser(User user) {  

30.        boolean result = false;  

31.        Connection conn = null;  

32.        PreparedStatement ps = null;  

33.        try {  

34.            conn = DBConn.getConn();  

35.            String sql = "insert into user(name,sex,age) values(?

?

?

)";  

36.            ps = conn.prepareStatement(sql);  

37.            ps.setString(1, user.getName());  

38.            ps.setString(2, user.getSex());  

39.            ps.setString(3, user.getAge());  

40.            int n = ps.executeUpdate();  

41.            if (n == 1) {  

42.                result = true; //保存成功  

43.            }  

44.        } catch (Exception e) {  

45.            e.printStackTrace();  

46.        } finally {  

47.            try {  

48.                ps.close();  

49.                conn.close();  

50.            } catch (Exception e) {  

51.                e.printStackTrace();  

52.            }  

53.        }  

54.        return result;  

55.    }  

56.      

57.    /**  

58.     * 从数据库中加载表数据放入对象列表  

59.     * @return  

60.     */  

61.    public List getUserList() {  

62.        List userList = new ArrayList();  

63.        Connection conn = null;  

64.        PreparedStatement ps = null;  

65.        ResultSet rs = null;  

66.        try {  

67.            conn = DBConn.getConn();  

68.            String sql = "select * from user";  

69.            ps = conn.prepareStatement(sql);  

70.            rs = ps.executeQuery();  

71.            while (rs.next()) {  

72.                User user = new User();  

73.                user.setId(rs.getLong("id"));  

74.                user.setName(rs.getString("name"));  

75.                user.setSex(rs.getString("sex"));  

76.                user.setAge(rs.getString("age"));  

77.                userList.add(user);  

78.            }  

79.        } catch (Exception e) {  

80.            e.printStackTrace();  

81.        } finally {  

82.            try {  

83.                rs.close();  

84.                ps.close();  

85.                conn.close();  

86.            } catch (Exception e) {  

87.                e.printStackTrace();  

88.            }  

89.        }  

90.          

91.        return userList;  

92.    }  

93.      

94.    /**  

95.     * 修改user对象信息并持久化到数据库  

96.     * @param args  

97.     */  

98.    public boolean updateUser(User user) {  

99.        boolean result = false;  

100.        Connection conn = null;  

101.        PreparedStatement ps = null;  

102.        try {  

103.            conn = DBConn.getConn();  

104.            String sql = "update user set age = ?

 sex = ?

 where name = ?

";  

105.            ps = conn.prepareStatement(sql);  

106.            ps.setString(1, user.getAge());  

107.            ps.setString(2, user.getSex());  

108.            ps.setString(3, user.getName());  

109.            int n = ps.executeUpdate();  

110.            if (n == 1) {  

111.                result = true; //更新成功  

112.            }  

113.        } catch (Exception e) {  

114.            e.printStackTrace();  

115.        } finally {  

116.            try {  

117.                ps.close();  

118.                conn.close();  

119.            } catch (Exception e) {  

120.                e.printStackTrace();  

121.            }  

122.        }  

123.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2