package jdbc; import java.sql.Connection; import java.sql.DriverManager; 
import java.sql.Statement; public class demo { public static void main(String[] 
args) throws Exception { //注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 
//注册方法 String url = "jdbc:mysql://127.0.0.1:3306/itcast?" + 
"useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"; 
String username = "root"; String password = "gyx.l123"; Connection conn = 
DriverManager.getConnection(url, username, password); //定义SQL语句 String sql = 
"insert into users values(4,'张六',30,'1','男',2)"; //获取statement对象 Statement sm = 
conn.createStatement(); //执行sql int count = sm.executeUpdate(sql);//受影响的行数 
//处理结果 System.out.println(count); //释放资源 sm.close(); conn.close(); } } 
JDBC API详解
DriverManager
Connection
import java.sql.Connection; import java.sql.DriverManager; import 
java.sql.Statement; public class demo2 { public static void main(String[] args) 
throws Exception { //注册方法 String url = "jdbc:mysql://127.0.0.1:3306/itcast?" + 
"useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"; 
String username = "root"; String password = "gyx.l123"; Connection conn = 
DriverManager.getConnection(url, username, password); //定义SQL语句 String sql1 = 
"update users set age = 30 where name = '张三'"; String sql2 = "update users set 
age = 32 where name = '张四'"; //获取statement对象 Statement sm = 
conn.createStatement(); try { //开启事务(手动提交) conn.setAutoCommit(false); 
//执行sql1,并处理结果 int count1 = sm.executeUpdate(sql1);//受影响的行数 
System.out.println(count1); //执行sql2,并处理结果 int count2 = 
sm.executeUpdate(sql1);//受影响的行数 System.out.println(count1); //提交事务 
conn.commit(); } catch (Exception e) { //回滚事务 conn.rollback(); } //释放资源 
sm.close(); conn.close(); } } 
Statement 
DDL语句不能用count的值判断是否执行成功,如"drop database username" DML语句可以用count的值判断是否执行成功 
ResultSet
 
import java.sql.Connection; import java.sql.DriverManager; import 
java.sql.ResultSet; import java.sql.Statement; public class demo_ResultSet { 
public static void main(String[] args) throws Exception { //注册方法 String url = 
"jdbc:mysql://127.0.0.1:3306/itcast?" + 
"useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"; 
String username = "root"; String password = "gyx.l123"; Connection conn = 
DriverManager.getConnection(url, username, password); //定义SQL语句 
//DDL语句不能用count的值判断是否执行成功,如"drop database username" //DML语句可以用count的值判断是否执行成功 
String sql = "select * from users"; //获取statement对象 Statement sm = 
conn.createStatement(); //执行sql ResultSet res = sm.executeQuery(sql); //处理结果 
while (res.next()){ int id = res.getInt(1); String name = res.getString(2); int 
age = res.getInt(3); String gender = res.getString(4); int dep = res.getInt(5); 
System.out.println(id+"\t"+name+"\t"+age+"\t"+gender+"\t"+dep); } //释放资源 
res.close(); sm.close(); conn.close(); /* 1 张三 30 男 1 2 张四 28 男 2 3 张五 22 女 3 4 
张六 30 男 2 5 王六 28 男 1 6 王五 28 男 1 */ } } 
 
import pojo.users; import java.sql.Connection; import java.sql.DriverManager; 
import java.sql.ResultSet; import java.sql.Statement; import 
java.util.ArrayList; public class demo_ResultSet2 { public static void 
main(String[] args) throws Exception { //注册方法 String url = 
"jdbc:mysql://127.0.0.1:3306/itcast?" + 
"useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"; 
String username = "root"; String password = "gyx.l123"; Connection conn = 
DriverManager.getConnection(url, username, password); //定义SQL语句 String sql = 
"select * from users"; //获取statement对象 Statement sm = conn.createStatement(); 
//执行sql ResultSet res = sm.executeQuery(sql); //处理结果 ArrayList<users> arr = new 
ArrayList<users>(); while (res.next()){ //创建对象 users u =new users(); //获取数据 int 
id = res.getInt(1); String name = res.getString(2); int age = res.getInt(3); 
String gender = res.getString(4); int dep = res.getInt(5); //给对象赋值 u.setId(id); 
u.setName(name); u.setAge(age); u.setGender(gender); u.setDep(dep); //把对象加入集合 
arr.add(u); } //打印集合 System.out.println(arr); //释放资源 res.close(); sm.close(); 
conn.close(); } } public class users { private int id; private String name; 
private int age; private String gender; private int dep; public int getId() { 
return id; } public void setId(int id) { this.id = id; } public String 
getName() { return name; } public void setName(String name) { this.name = name; 
} public int getAge() { return age; } public void setAge(int age) { this.age = 
age; } public String getGender() { return gender; } public void 
setGender(String gendert) { this.gender = gendert; } public int getDep() { 
return dep; } public void setDep(int dep) { this.dep = dep; } @Override public 
String toString() { return "users{" + "id=" + id + ", name='" + name + '\'' + 
", age=" + age + ", gendert='" + gender + '\'' + ", dep=" + dep + '}'; } } 
PreparedStatement
 登录案例:
import java.sql.Connection; import java.sql.DriverManager; import 
java.sql.ResultSet; import java.sql.Statement; public class 
demo_PreparedStatement { public static void main(String[] args) throws 
Exception { //注册方法 String url = "jdbc:mysql://127.0.0.1:3306/itcast?" + 
"useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"; 
String username = "root"; String password = "gyx.l123"; Connection conn = 
DriverManager.getConnection(url, username, password); //接收用户输入的用户名和密码 String 
name = "小红"; String psw = "123"; //String name = "3326988"; //String psw = "'or 
'1'='1"; //定义SQL语句 String sql = "select * from username_password where username 
= '" + name + "' and password='" + psw + "'"; //获取statement对象 Statement sm = 
conn.createStatement(); //执行sql ResultSet res = sm.executeQuery(sql); 
//判断是否登陆成功 if(res.next()){//res有数据,返回true System.out.println("登陆成功"); }else{ 
System.out.println("登录失败"); } //释放资源 res.close(); sm.close(); conn.close(); } } 
import java.sql.*; public class demo_PreparedStatement { public static void 
main(String[] args) throws Exception { //注册方法 String url = 
"jdbc:mysql://127.0.0.1:3306/itcast?" + 
"useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"; 
String username = "root"; String password = "gyx.l123"; Connection conn = 
DriverManager.getConnection(url, username, password); //接收用户输入的用户名和密码 String 
name = "小红"; String psw = "123"; //定义SQL语句 String sql = "select * from 
username_password where username = ? and password = ?"; //获取 
PreparedStatement对象,并设置 ? 的值 PreparedStatement ps = conn.prepareStatement(sql); 
ps.setString(1, name); ps.setString(2, psw); //执行sql ResultSet res = 
ps.executeQuery(); //判断是否登陆成功 if (res.next()) {//res有数据,返回true 
System.out.println("登陆成功"); } else { System.out.println("登录失败"); } //释放资源 
res.close(); ps.close(); conn.close(); } } 
数据库连接池Druid
 
 
import com.alibaba.druid.pool.DruidDataSourceFactory; import 
javax.sql.DataSource; import java.io.FileInputStream; import 
java.sql.Connection; import java.util.Properties; public class druid_Demo { 
public static void main(String[] args) throws Exception { //1.导jar包 //2.配置文件 
//3.加载配置文件 Properties prop = new Properties(); prop.load(new 
FileInputStream("jdbc-demo/src/druid.properties")); 
//System.out.println(System.getProperty("user.dir"));找当前路径的方法 //4.获取连接池对象 
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop); 
//5.获取数据库连接 Connection Connection conn = dataSource.getConnection(); 
System.out.println(conn); } }