发表于: 2019-03-02 21:21:34
1 631
jdbc复习
到spring才发现之前的学习确实都过急躁,缺漏太多,单是对jdbc的理解就非常的不足,无法将一个jdbc连接数据库的过程分解清晰,所以今天回到jdbc章节中做一些代码练习。
1.使用final变量、常量和jdbc技术连接MySQL数据库。
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnection {
private static final String url = "jdbc:mysql://localhost:3306/test";//地址常量
private static final String user = "root";//用户常量
private static final String password = "159357";//密码常量
Connection conn;//连接对象变量
void method(){
try {
Class.forName("com.mysql.cj.jdbc.Driver");//驱动加载
System.out.println("数据库驱动加载成功");
}catch (Exception e){//捕捉异常
e.printStackTrace();
}
try {//捕捉异常
conn = DriverManager.getConnection(url,user,password);//数据库连接
System.out.println("数据库连接成功");
}catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {//主方法入口(运行入口)
DBConnection con = new DBConnection();//创建本类对象,不创建对象的话无法调用方法
con.method();//本类对象调用method()方法
}
}
结果:
2.使用jdbc技术连接JavaDB数据库。
先创建一个名为javaDB的数据库。
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnection {//创建类
Connection conn;//连接对象变量
void method(){
try {
Class.forName("com.mysql.cj.jdbc.Driver");//驱动加载
System.out.println("数据库驱动加载成功");
}catch (Exception e){//捕捉异常
e.printStackTrace();
}
try {//捕捉异常
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/" +
"JavaDB","root","159357");//数据库连接
System.out.println("javaDB数据库连接成功");
}catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {//主方法入口(运行入口)
DBConnection con = new DBConnection();//创建本类对象,不创建对象的话无法调用方法
con.method();//本类对象调用method()方法
}
}
结果为:
3.查询MySQL数据库test中的数据表tb_book,获取编程词典6月份的销量后,将其输出在控制台上。
先在数据库中创建出test数据库和tb_book数据表,添加一些数据。
import java.sql.*;
public class Find {//因为在DBConnection中已经写过连接代码了,所以直接把DBConnection写成Find的子类
public static void main(String[] args) throws SQLException {
Find f = new DBConnection();//new一个DBConnection的对象给Find
Connection conn;//声明Connection连接对象
Statement stam;//声明Statement执行SQL语句对象
ResultSet re;//声明ResultSet存放结果对象
try {//捕捉异常
conn = ((DBConnection) f).method();//调用数据库连接方法
stam = conn.createStatement();//连接数据库后创建并调用Statement执行语句方法(其实就是使stam能连接上数据库并输入执行语句)
re = stam.executeQuery("select * from tb_book where id = 3");//执行SQL语句,并返回结果集
while (re.next()){//如果当前语句不是最后一条则进入循环
String id = re.getString("id");//获取id字段
String name = re.getString("name");//获取name字段
String month = re.getString("month");//获取month字段
String quantity= re.getString("quantity");//获取quantity子弹
System.out.print("id:"+id+" ");
System.out.print("书名:"+name+" ");
System.out.print("月份:"+month+" ");
System.out.println("销售数量:"+quantity);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
结果为:
4.查询MySQL数据库test中的数据表tb_booksaleinfo中销量排名前7位的所有图书信息,并将这部分信息显示在窗体表格中。
先创建表格
import java.sql.*;
public class Find {//因为在DBConnection中已经写过连接代码了,所以直接把DBConnection写成Find的子类
public static void main(String[] args) throws SQLException {
Find f = new DBConnection();//new一个DBConnection的对象给Find
Connection conn = null;//声明Connection连接对象
Statement stam = null;//声明Statement执行SQL语句对象
ResultSet re = null;//声明ResultSet存放结果对象
try {//捕捉异常
conn = ((DBConnection) f).method();//调用数据库连接方法
stam = conn.createStatement();//连接数据库后创建并调用Statement执行语句方法(其实就是使stam能连接上数据库并输入执行语句)
re = stam.executeQuery("select * from tb_booksaleInfo where rank between 1 and 7");//执行SQL语句,并返回结果集
while (re.next()) {//如果当前语句不是最后一条则进入循环
String id = re.getString("id");//获取id字段
String name = re.getString("name");//获取name字段
String month = re.getString("month");//获取month字段
String quantity = re.getString("quantity");//获取quantity字段
String rank = re.getString("rank");//获取rank字段
System.out.print("\tid:" + id );
System.out.print("\t书名:" + name);
System.out.print("\t月份:" + month);
System.out.print("\t销售数量:" + quantity);
System.out.println("\t销售排行:" + rank);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果为
5.使用动态查询MySQL数据库test中的数据表tb_booksaleinfo中销量排名前7位的所有图书信息,并将这部分信息显示在窗体表格中。
import java.sql.*;
public class Find {//因为在DBConnection中已经写过连接代码了,所以直接把DBConnection写成Find的子类
public static void main(String[] args) throws SQLException {
Find f = new DBConnection();//new一个DBConnection的对象给Find
Connection conn = null;//声明Connection连接对象
PreparedStatement stam = null;//声明PrepareStatement预编译SQL语句对象
ResultSet re = null;//声明ResultSet存放结果对象
try {//捕捉异常
conn = ((DBConnection) f).method();//调用数据库连接方法
stam = conn.prepareStatement("select * from tb_booksaleInfo where id between ? and ?");//连接数据库后创建并调用Statement执行语句方法(其实就是使stam能连接上数据库并输入执行语句)
stam.setInt(1,2);//设置执行语句左起第1个通配符为2
stam.setInt(2,8);//设置执行语句左起第2个通配符为8
re = stam.executeQuery();//执行SQL语句,并返回结果集
while (re.next()) {//如果当前语句不是最后一条则进入循环
String id = re.getString("id");//获取id字段
String name = re.getString("name");//获取name字段
String month = re.getString("month");//获取month字段
String quantity = re.getString("quantity");//获取quantity字段
String rank = re.getString("rank");//获取rank字段
System.out.print("\tid:" + id );
System.out.print("\t书名:" + name);
System.out.print("\t月份:" + month);
System.out.print("\t销售数量:" + quantity);
System.out.println("\t销售排行:" + rank);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果为:
6.使用插入语句在tb_booksaleInfo中插入一条id为15,书名为《好好学习》6月份销售量108本的信息
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class Add {//创建类
Connection conn;//连接对象
public Connection getConnection() {//连接数据库方法
try {
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
conn = DriverManager.getConnection("jdbc:mysql://localhost/test","root","159357");//连接数据库
System.out.println("连接成功");
}catch (Exception e){
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Add add = new Add();//创建对象
PreparedStatement stam;//声明对象
Connection con;//声明对象
con = add.getConnection();//与数据库取得联系
try {//捕捉异常
stam = con.prepareStatement("insert into tb_booksaleinfo values (?,?,?,?,?)");//实例化预处理对象
stam.setInt(1,15);//设置处理参数
stam.setString(2,"好好学习");//设置处理参数
stam.setString(3,"June");//设置处理参数
stam.setInt(4,108);//设置处理参数
stam.setInt(5,11);//设置处理参数
stam.executeUpdate();//执行语句操作并更新
}catch(Exception e){
e.printStackTrace();
}
}
}
结果:
今日收获:熟悉了jdbc的使用
问题:没有了解完每种接口的方法
明日计划:再做点题巩固巩固,然后试试看能不能理解spring
评论