增删改
package com.yzx.JDBC01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 利用PreparedStatement进行增删改数据
* @author 2Π
*
*/
public class Demo03 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
try {
//加载驱动类
Class.forName("com.mysql.jdbc.Driver");
//建立连接(连接对象内部实质是包含了Scoket对象,是一个远程连接。比较耗时!这是Connection的缺点)
//实际开发中,使用连接池来提高效率。
conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","000000");
String addStr = "insert into tb_user (uName,uPwd,reTime) values (?,?,?)"; //?占位符
ps = conn.prepareStatement(addStr);
//用setObject方法来处理参数、也可用set(对应数据类型)
ps.setObject(1, "张三");
ps.setObject(2, "000000");
ps.setObject(3, new java.sql.Date(System.currentTimeMillis()));
if (ps.executeUpdate()>0) {
System.out.println("插入成功!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
if (ps!=null) {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn!=null) {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
结果:
这里举的是插入即添加数据的例子,更新与删除只要改下sql语句就行。
查询数据
比如将刚刚插入的数据读出来。
package com.yzx.JDBC01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 查询数据库中的结果并打印至控制台
*
* @author 2Π
*
*/
public class Demo04 {
public static void main(String[] args){
//创建连接对象
Connection conn =null;
//创建准备做事的对象
PreparedStatement ps =null;
//接收返回的查询结果
ResultSet rs =null;
//加载驱动类
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","000000");
//sql语句
String sqlStr = "select * from tb_user where uName=?";
ps = conn.prepareStatement(sqlStr);
ps.setString(1, "张三");
//executeQuery()返回查询记录
rs = ps.executeQuery();
System.out.println("id\t姓名\t密码\t");
while (rs.next()/*.next()指向下一条查询结果、有返回true,没有返回false*/) {
System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}finally {
//关闭jdbc相关对象
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
运行结果
查询一定日期范围的数据
package com.yzx.JDBC01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**
* 查询一定时间范围的数据
*
* @author 2Π
*
*/
public class Demo08 {
/**
* 将字符串日期转化成long数字
* @param date (格式yyyy-MM-dd hh:mm:ss)
* @return
*/
public static long strDate(String date) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
return format.parse(date).getTime();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return 0;
}
}
public static void main(String[] args){
//创建连接对象
Connection conn =null;
//创建准备做事的对象
PreparedStatement ps =null;
//接收返回的查询结果
ResultSet rs =null;
//加载驱动类
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","000000");
//sql语句
String sqlStr = "select * from tb_user where loginTime>? and loginTime<?";
ps = conn.prepareStatement(sqlStr);
//设置时间段 8:00 到 9:00
Timestamp start = new Timestamp(strDate("2020-04-24 08:00:00"));
Timestamp end = new Timestamp(strDate("2020-04-24 09:00:00"));
//填充
ps.setTimestamp(1, start);
ps.setTimestamp(2, end);
//执行返回
rs = ps.executeQuery();
//读取打印
while (rs.next()) {
System.out.println(rs.getString("uName")+"==="+rs.getObject("loginTime"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}finally {
//关闭jdbc相关对象
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
查询结果: