加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

单例模式和JDBC

发布时间:2020-12-15 07:15:47 所属栏目:Java 来源:网络整理
导读:配置文件:driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/bloguser=rootuser=1234properties文件里面通常存放的是Map,也就是键值对。 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以
配置文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/blog
user=root
user=1234

properties文件里面通常存放的是Map,也就是键值对。

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例

?

话说JDBC

Java通过JDBC连接数据库分为以下四步:
1.加载驱动
2.建立连接
3.使用Preparedstatement进行预编译或者使用statement对象
4.释放资源


Preparedstatement和Statement的比较:
a.首先Preparedstatement是预编译的,而Statement反之。
b.Preparedstatement支持批量处理,而Statement不行。
c.Preparedstatement相对于Statement可读性上良好
d.无论从哪个方面看Preparedstatement都比Statement要好(不相信的话可以自己写一个
小的图书管理系统或则其它的小项目都可以,一个用Preparedstatement一个用Statement进行对比
就知道了)

?


/**
单例模式
*/
package
com.utils; import java.io.FileInputStream; java.io.FileNotFoundException; java.io.IOException; java.util.Properties; public class ConfigManager { /**之所以定义为静态的是因为静态修饰可直接调用,不需要实例化,直接类名.方法名即可调用 */ private static ConfigManager config; Properties props; private ConfigManager(){ props=new Properties(); } ConfigManager getInstance(){ if(config==null){ config= ConfigManager(); } return config; } String getPropertis(String key){ try { FileInputStream fis=new FileInputStream("src/db.properties"); props.load(fis); props.getProperty(key); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return ; } (IOException e) { ; } } }

?

通过JDBC和数据库打交道


 * JDBC连接数据库
 */


package com.dao;

 java.sql.Connection;
 java.sql.DriverManager;
 java.sql.PreparedStatement;
 java.sql.ResultSet;
 java.sql.SQLException;

 com.utils.ConfigManager;

 BaseDao {
    
    Connection conn=;
    PreparedStatement ps=;
    ResultSet rs=;
    与数据库建立连接
    boolean getConnection(){
        String driver=ConfigManager.getInstance().getPropertis("driver");
        String url=ConfigManager.getInstance().getPropertis("url");
        String user=ConfigManager.getInstance().getPropertis("user");
        String password=ConfigManager.getInstance().getPropertis("password");
         {
       //加载驱动 Class.forName(driver);
       //建立连接 conn
=DriverManager.getConnection(url,user,password); true (ClassNotFoundException e) { false; } (SQLException e) { ; } } 所有查询方法的模板 public ResultSet select(String sql,Object[]obj){ getConnection(); {
//使用Preparedstatement对象预编译sql ps
=conn.prepareStatement(sql); for (int i = 0; i < obj.length; i++) { ps.setObject(i+1,obj[i]); } rs=ps.executeQuery(); rs; } ; } } 所有增删改方法的模板 int update(String sql,1)"> { ps=int lines=ps.executeUpdate(); lines; } return 0释放资源 close(){ { if(!rs.isClosed()){ rs.close(); } } e.printStackTrace(); ; } ps.isClosed()){ ps.close(); } } conn.isClosed()){ conn.close(); } } ; } ; } }




?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读