public class JDBCDemo2 {
public static void main(String[] args) throws Exception {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接对象
String url="jdbc:mysql://localhost:3306/student";
String user = "root";
String password = "123456";
Connection con=DriverManager.getConnection(url, user, password);
//3.获取执行SQL语句对象
Statement stat = con.createStatement();
//拼写查询的SQL
String sql="SELECT * FROM t_stu";
//4.调用执行者对象方法,执行SQL语句获取结果集
ResultSet rs = stat.executeQuery(sql);
//5.处理结果集
while(rs.next()) {
System.out.println(rs.getInt("id")+" "+rs.getString("name")+" "+rs.getInt("age"));
}
rs.close();
stat.close();
con.close();
}
}
public class JDBCDemo3 {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/student";
String user="root";
String password = "123456";
Connection con = DriverManager.getConnection(url, user, password);
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
int age = sc.nextInt();
String sql = "SELECT * FROM t_stu WHERE name=? AND age=?";
PreparedStatement pst = con.prepareStatement(sql);
pst.setObject(1, name);
pst.setObject(2, age);
ResultSet rs = pst.executeQuery();
while(rs.next()) {
System.out.println(rs.getInt("id")+" "+rs.getString("name")+" "+rs.getInt("age"));
}
rs.close();
pst.close();
con.close();
}
}
public class TestJDBCUtils {
public static void main(String[] args) throws Exception {
Connection con = JDBCUtil1.getConnection();
PreparedStatement pst = con.prepareStatement("SELECT name FROM t_stu");
ResultSet rs = pst.executeQuery();
while(rs.next())
{
System.out.println(rs.getString("name"));
}
JDBCUtil1.close(con, pst, rs);
}
}
public class JDBCUtil1 {
private JDBCUtil1() {}
private static Connection con;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/student";
String user="root";
String password = "123456";
con = DriverManager.getConnection(url, user, password);
}
catch(Exception ex){
throw new RuntimeException(ex+"数据库连接失败");
}
}
/*
* 定义静态方法,返回数据库的连接对象
*/
public static Connection getConnection() {
return con;
}
public static void close(Connection con,Statement st,ResultSet rs)
{
if(rs!=null) {
try {
rs.close();
}catch (SQLException ex) {
}
}
if(st!=null) {
try {
st.close();
}catch (SQLException ex) {
}
}
if(con!=null) {
try {
con.close();
}catch (SQLException ex) {
}
}
}
}
DButils:
/*
* 使用QueryRunner类,实现对数据表的
* insert delete update
* 调用QueryRunner类的方法 update(Connection con,String sql,Object...param)
* Object...param可变参数,Object类型,SQL语句会出现?占位符
* 数据库连接对象,自定义的工具类传递
*/
public class QueryRunnerDemo {
private static Connection con = JDBCUtilsConfig.getConnection();
public static void main (String[] args) throws Exception{
// insert();
// update();
delete();
}
/*
* 定义方法,使用QueryRunner类的方法delete将数据表的数据删除
*/
public static void delete() throws Exception{
QueryRunner qr = new QueryRunner();
String sql = "DELETE FROM sort WHERE sid=?";
int row=qr.update(con, sql, 3);
System.out.println(row);
DbUtils.closeQuietly(con);
}
/*
* 定义方法,使用QueryRunner类的方法update将数据表的数据修改
*/
public static void update() throws Exception{
QueryRunner qr = new QueryRunner();
String sql = "UPDATE sort SET sname=?,sprice=?,sdesc=? WHERE sid=?";
Object[] params = {"花卉",100.88,"情人节玫瑰",4};
int row = qr.update(con, sql, params);
System.out.println(row);
DbUtils.closeQuietly(con);
}
/*
* 定义方法,使用QueryRunner类的方法update向数据表中,添加数据
*/
public static void insert() throws Exception{
QueryRunner qr = new QueryRunner();
String sql = "INSERT INTO sort (sname,sprice,sdesc)VALUES(?,?,?)";
//将三个?占位符的实际参数,写在数组中
Object[] params = {"体育用品",289.32,"购买体育用品"};
//调用QueryRunner类的方法update执行SQL语句
int row = qr.update(con, sql, params);
System.out.println(row);
DbUtils.closeQuietly(con);
}
}
QueryRunner数据查询操作: