数据库操作JDBC DButils 连接池

JDBC - DButils 连接池

JDBC

  • 使用步骤
    1.加载驱动
    Class.forname("com.mysql.jdbc.Driver");
    2.获得连接
    Connection conn=DriverManager.getConnection("jdbc:mysql://students","root","root");

    3.基本操作
    3.1 获得执行sql语句的对象
    Statement st = conn.createStatement()
    3.2执行sql语句
    ResultSet rs = st.executeQuery("select * from student");
    3.3遍历结果集

    while(rs.next()){
    	System.out.println(rs.getString("sid"));
    	...		
    }
    

    4.释放资源

    rs.close();
    st.close();
    conn.close();
    
  • 类DriverManager管理一组 JDBC 驱动程序的基本服务。全部是静态方法。
    - static Connection getConnection(String url, String user, String password)
    试图建立到给定数据库 URL 的连接。

  • static Connection getConnection(String url, String user, String password) 试图建立到给定数据库 URL 的连接。
    - jdbc:mysql://localhost:3306/students jdbc:是一个数据库协议,mysql是子协议 , (localhost是本机,3306是端口号,这俩可省略)

  • 接口 Connection与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
    - Statement createStatement() 创建一个 Statement 对象来将 SQL 语句发送到数据库。 执行sql语句

  • 接口 Statement用于执行静态 SQL 语句并返回它所生成结果的对象。还可以执行批处理
    - boolean execute(String sql)
    执行给定的 SQL 语句,该语句可能返回多个结果。 用来执行查询修改添加删除,返回bool类型,若是查询返回true,否则false
    - ResultSet executeQuery(String sql)
    执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。专门用来执行查询(select语句)
    - int executeUpdate(String sql)
    执行给定的 SQL 语句,并通知驱动程序在给定数组中指示的自动生成的键应该可用于获取。 执行添加删除修改的sql语句(insert , update, delete).返回是执行的行数

  • 接口 ResultSet 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成
    - 查询之后会将查询到的整个表封装到集和里
    - boolean next() 将光标从当前位置向前移一行。 指向下一个对象

  • 记住得释放资源

DButils

  • DButils就是简化JDBC开发工具包,需要项目导包,commons-dbutils-1.6.jar
  • QueryRunner(DataSource ds) 这是QueryRunner核心类的有参构造方法,需要传入一个连接池对象
  • int updata(String sql, Object …可变参数) 用来执行插入修改删除操作
  • int updata(Connection conn , String sql , 可变参数)用来执行插入修改删除操作
  • T query(String sql,ResultHandler reh , 可变参数) 用来执行查询
ResultHandler查询结果集
  • ArrayHandler 将一条记录封装到一个object数组中。
  • ArrayListHander 将多条记录封装到List集合中
  • BeanHandlerj将一条记录封装到一个Javabean这一个Java类
  • new BeanHandler (Student.class)
  • BeanListHandler将多条记录封装到装有Java类对象的List集合中
  • MapHandler 将一条封装到map的集合中,map的key是列名,value是列记录的值
  • MapListHandler 多条记录封装到一个装有map的List集合中

连接池

  • c3p0连接池,需要导包
  • 创建一个连接池:但是这个连接池只需要创建一次即可。
//可以之间使用,它会在类路径下自己找c3p0-config.xml,然后加载。
ComboPooledDataSource dataSource = new ComboPooledDataSource();
- 获得连接的方法 dataSource.getConnection();
- 获得连接池: 
public static DataSource getDataSource(){
		return dataSource;
}
//c3p0-config.xml


	
		com.mysql.jdbc.Driver
		jdbc:mysql:///students
		root
		root
		
		5
		5
		20
	 
	

  • Druid是阿里巴巴旗下开源连接池,使用简单,可以与spring框架进行快速整合,需要导包
  • 使用连接池:
DruidDataSource dataSource = new DruidDataSource();
//手动设置数据库连接参数
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc::mysql:///students");
dataSource.setUsername("root");
dataSource.setPassword("root");

dataSource.getConnection();

//用配置文件
//首先建立一个db.properties文件,内容如下
DriverClassName=com.mysql.jdbc.Driver
Url=jdbc::mysql:///students
Username=root
Password=root

//从属性文件获取
Properties pro = new Properties();
pro.load(new FileInputStream("配置文件路径"));
DataSource ds = DruidDataSourceFactory.createDataSource(pro);

你可能感兴趣的:(Java,数据库,数据库,java,mysql)