java操作数据库笔记

##JDBC
1.概念:Java database Connectivity java 数据库连接, java语言操作数据库
JDBC本质:其实就是官方(sun公司)定义的一套操作所有关系型数据库的规则,及接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包
。我们可以使用这套接口(jdbc)编程,真正执行的代码是驱动jar包中的实现类

2.快速入门:
	步骤:
		1.导入驱动jar包
			复制jar包到项目的libs目录下
			右键-->Add As Library
			
		2.注册驱动
		3.获取数据库连接对象  Connection
		4.定义sql语句
		5.获取执行sql语句的对象 Statement
		6.执行sql,接受返回结果
		7.处理结果
		8.释放资源
3.各个对象:
	1.DriverManager:驱动管理
		功能:
			1.注册驱动
				写代码使用:Class.forName("com.mysql.jdbc.Driver");
			注意:mysql5之后的驱动jar包可以省略注册驱动的步骤。
			2.获取数据库连接
				方法:static Connection getConnrection(String url,String password)
				参数:url:指定连接的路径
					语法:jdbc:mysql://ip地址(域名):端口号 / 数据库名称
					例子:jdbc:mysql://localhost:3306/db3
					细节:如果连接的是本机的mysql服务器,并且端口为3306,则ip地址和端口号可以省略
					
	2.Connection:据库连接对象  
		1.功能:
			1.获取执行sql的对象
				Statement createStatement()
				PreparedStatement prepareStatement (String sql)
			2.事务管理:
				开启事务: void setAutoCommit(bolean autoCommit)  :调用该方法设置参数为false,即开启事务
				提交事务:commit()
				回滚事务:rollback()					
	3.Statement:执行sql的对象
		1.执行sql
			boolean execute(String sql):可以执行任意的sql   了解
			int executeUpdate(String sql):执行的是dml(insert、update、delete)语句ddl(create,alter,drop)语句
				返回值:影响的行数 返回值>0则执行成功,反之,则失败
			ResultSet execute Query(String sql):执行DQL(select)语句
		
	4.ResultSet:结果集对象
		next();游标向下移动一行
		getxxx参数:获取数据
			xxx:代表数据类型   如:int getInt() ,String getString();
			参数:int :代表列编号。如: getDouble("balance");
			          String :代表列表名称。 如:getDouble("balance")
		使用步骤:
			游标向下移动一行
			判断是否有数据
			获取数据
			例;
				while(rs.next()){
					int id = rs.getInt(1);
					。。。。。
					}

	5.PreparedStatement:执行sql的对象
	        1.sql注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全问题
		1.输入用户名随便,输入密码:a' or 'a'='a
		2.sql:select *from user where username ='dsfdsf'and password='a' or 'a'='a';
	         2.解决sql注入问题:使用PreparedStatement对象来解决
	         3.预编译sql:使用占位符
		定义sql时使用?   
		获取执行sql的对象PreparedStatement ,使用Connection.preparedStatement(sql);
		给?赋值:
			方法:setXxx(参数1,参数2)
				参数1:?的位置编号 从1开始
				参数2:?的值
		执行sql

抽取工具类:JDBCUtils
目的:简化书写
分析:
1.注册驱动
2.获取连接
需求:不想传递参数,还得保证工具类的通用性
解决:配置文件
1.获取类加载器 ClassLoader();
2.调用getResource(配置文件名)
3.调用getPath();
4.将文件放入property集合中
3.释放资源
java事务管理:
con.setAutocommit(false);

提交事务commit
回滚事务

数据库连接池:

	C3P0
	Druid
实现:标准接口DataSource             javax.sql 包下的
方法:获取连接:getConnection()
          归还连接:Connection.close()
     步骤:
	1.导入jar包(3个)c3p0-....-....-.jar   mchange-commons-java-..-..-.jar   驱动jar包
	2.定义配置文件
		名称:c3p0.properties 或者 c3p0-config.xml
		路径:直接将文件放在sc目录下即可
	创建核心对象  数据库连接池对象  new ComboPooledDataSource()
	获取连接:getConnection

spring JDBC
Spring提供的JDBC的简单封装提供了一个JDBCTemplate对象简化JDBC的开发

你可能感兴趣的:(java,mysql)