实习第二天
学习关于jdbc的相关知识
重温java
首先了解一行代码
class.forname(“com.mysql.jdbc.Driver”);
Java异常包括两种,一种是需要处理的,一种是不必须处理的,这行代码将会抛出一个必须处理的异常,处理方式有两种,一种是将异常抛出至上一级,另一种是用try catch捕获异常进行处理。为了简化代码,全部抛出至上一级。
包的分层
新建包的时候输入 com.whut.demo1,建立三个包,一级目录二级目录三级目录分别为com、whut、demo1.
面向对象思想的JDBC编程
分了三个包,DAO放了对数据库的基本操作,Conn包进行数据库的连接,service用来放置后续的服务
修改后的代码如下
Conn类
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Conn {
private Connection con;
public void setcon (Connection con){
this.con = con;
}
public Connection connect() {
//驱动程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要访问的数据库名login
String url = "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8";
//MySQL配置时的用户名
String user = "root";
//MySQL配置时的密码
String password = "1234zhang";
//遍历查询结果集
try {
//加载驱动程序
Class.forName(driver);
//1.getConnection()方法,连接MySQL数据库!!
con = DriverManager.getConnection(url, user, password);
if (!con.isClosed())
System.out.println("Succeeded connecting to the Database!");
//2.创建statement类对象,用来执行SQL语句!!
} catch (ClassNotFoundException e) {
//数据库驱动类异常处理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch (SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
System.out.println("数据库数据成功获取!!");
}
return con;
}
}
dbselect类
package DAO;
import Conn.*;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class dbselect {
private Connection con = null ;
public void sele() throws SQLException, UnsupportedEncodingException {
String sql = "select * from student"; //从建立的login数据库的login——message表单读取数据
Conn co = new Conn();
dbselect dbs = new dbselect();
dbs.con = co.connect();
//3.ResultSet类,用来存放获取的结果集!!
ResultSet rs = null;
Statement statement = dbs.con.createStatement();
rs = statement.executeQuery(sql);
System.out.println("-----------------");
System.out.println("执行结果如下所示:");
System.out.println("-----------------");
System.out.println(" 学号" + "\t" + " 姓名" + "\t" + "性别");
System.out.println("-----------------");
String name = null;
String login_password = null;
String sex = null;
while (rs.next()) {
//获取stuname这列数据
name = rs.getString("sno");
//获取stuid这列数据
login_password = rs.getString("sname");
sex = rs.getString("sex");
//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组。
name = new String(name.getBytes("ISO-8859-1"), "gb2312");
//输出结果
sex = new String(sex.getBytes());
System.out.println(name + "\t" + login_password + "\t\t" + sex);
}
dbs.con.close();
rs.close();
statement.close();
}
}
dbmain(主类)
package DAO;
import Conn.*;
import Conn.Conn;
import java.io.UnsupportedEncodingException;
import java.sql.SQLException;
import java.util.Scanner;
public class dbmain {
public static void main(String[] args) throws SQLException, UnsupportedEncodingException {
System.out.println("请选择要进行的操作。");
System.out.println("1.添加");
System.out.println("2.删除");
System.out.println("3.查找");
System.out.println("4.修改");
Scanner scanner = new Scanner(System.in);
int choose = scanner.nextInt();
switch (choose)
{
case 1:
dbadd add = new dbadd();
add.adddb();
break;
case 2:
break;
case 3:
dbselect dbs = new dbselect();
dbs.sele();
break;
case 4:
break;
default:break;
}
}
}
dbadd类
package DAO;
import Conn.*;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class dbadd {
private Connection con = null ;
public void adddb() throws SQLException, UnsupportedEncodingException {
Conn co = new Conn();
dbadd add = new dbadd();
add.con = co.connect();
String sql = "insert into student value (default,'lidfdi','女')";
Statement stmt = add.con.createStatement();
try {
stmt.executeUpdate(sql);
System.out.println("插入成功");
} catch (SQLException e) {
e.printStackTrace();
}
//要执行的SQL语句
add.con.close();
stmt.close();
}
}
运行结果如下: