目录
前期准备工作:
创建一个java项目,把下载好的jdbc驱动添加到项目中。在项目的根目录下创建一个lib文件夹,并将驱动文件mysql-connector-java-5.1.44-bin.jar 复制粘贴到该目录下,右键—>Build path—>add to build path
代码实现:
- 注册jdbc驱动(DriverManager)
- 创建连接(Connection)
- 创建执行SQL命令的平台(preparedstatement)
- 执行SQL语句
- 处理结果
- 释放资源
1.添加数据
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Scanner;
import java.sql.PreparedStatement;
/**
* 添加操作
* @author Ven
*
*/
public class Insert {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输入ID:");
int eid = input.nextInt();
System.out.print("请输入姓名:");
String ename = input.next();
System.out.print("请输入密码:");
String epwd = input.next();
System.out.print("请输入年龄:");
int eage = input.nextInt();
System.out.print("请输入生日:");
String ebirthday = input.next();
System.out.print("请输入电话:");
String etel = input.next();
String sql="INSERT INTO employee(eid,ename,epwd,eage,ebirthday,etel)" +
"VALUES(?,?,?,?,?,?)";
//1.注册jdbc驱动
try {
Class.forName("com.mysql.jdbc.Driver");
//2.创建Connection连接
//DriverManager.getConnection(url,user,password)
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/empdb","root","root");
//3.创建执行SQL命令的平台(preparedstatement)
PreparedStatement pstmt = conn.prepareStatement(sql);
//给占位符 ? 赋值
pstmt.setInt(1, eid);
pstmt.setString(2, ename);
pstmt.setString(3, epwd);
pstmt.setInt(4, eage);
pstmt.setString(5, ebirthday);
pstmt.setString(6, etel);
//4.执行SQL语句:DML(insert/update/delete) DQL (select)
//DML:executeUpdate()返回值是int类型,代表DML操作的影响行数 DQL:executeQuery()
int r = pstmt.executeUpdate();
//5.处理结果
if (r>0) {
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
//6.释放资源
pstmt.close();
conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
删除查新更新几乎一样,只有sql语句和DML、DQL不同,就不放代码了。
2.连接池
传统数据中,每次访问数据库都需要创建连接,用完直接销毁,非常耗费资源。连接池首先创建一个类似池子的东西,将事先创建好的连接对象放在池子中,当有用户访问数据库,从池中取一个可用的连接,当使用完后,将连接归还给连接池。
这个同样也要将两个驱动jar包加入到lib中。 c3p0-0.9.5.2.jar mchange-commons-java-0.2.11.jar
必须在src路径下创建一个c3p0.properties的属性文件 (文件名称一个字符都不可以错) src—>new—>other—file
属性文件需要添加的内容
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/empdb
c3p0.user=root
c3p0.password=root
class文件代码:
package jdbc;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* 测试连接池
* @author Ven
*
*/
public class Test {
public static void main(String[] args) {
String sql="SELECT *FROM employee";
try {
//通过连接池获取连接对象
ComboPooledDataSource dataSource = new ComboPooledDataSource();
Connection conn = dataSource.getConnection();
//创建执行sql平台
PreparedStatement pstmt=conn.prepareStatement(sql);
//执行sql语句
ResultSet rs=pstmt.executeQuery();
//处理结果
while(rs.next()) {
int eid = rs.getInt(1);
String ename = rs.getString(2);
String epwd = rs.getString(3);
int eage = rs.getInt(4);
String ebirthday = rs.getString(5);
String etel = rs.getString(6);
System.out.println(eid+"\t"+ename+"\t"+epwd+"\t"+eage+"\t"+ebirthday+"\t"+etel);
}
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
查询结果:
PS:排名6w了诶 heihei