作者:小符
撰写时间:2019.05.15
Jdbc是用来连接数据库进行交互的,原名就叫做Java数据库连接(Java DataBase Connectivity),所以想连接数据库必须得写jdbc.
如何连接呢,有下面步骤:
·加载驱动:com.jdbc.mysql.driver 怎么交互,通过什么加载,用什么方法,用什么知识点
·获取连接:connection conn
·获取st
·执行我们的query/update方法
·关闭链接con/st/rs
首先,**声明四个参数:**用户名、用户密码、
sql路径 = jdbc:数据库mysql:IP地址(本地地址是localhost/127.0.0.1):端口号3306/数据库名)、
驱动路径 = 域名.数据库mysql.数据库连接jdbc.驱动)。
public class JdbcUtil {
Private static String username="root";
private static String password="root";
Private static String url="jdbc:mysql://localhost:3306/test";
private static String driver="com.mysql.jdbc.Driver";
**添加jar包:**jar包是提供代码与数据库连接的桥梁。
将jar包添加到WebRoot\WEB-INF\lib文件夹里,如果想知道jar里面有什么,点击jar包,鼠标右键选择“Build Path”+ “Add to Build Path”,将jar包添加到Referenced Libraries中就可以打开jar包查看里面的子文件了。
其次,写一个查询方法测试一下是否连接成功。先创建一个User类,存放实体对象:
public class User {
private String username;
private String password;
private int userid;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
}
写一个查询方法:
public static void selectAll(){
使用反射加载机制,加载驱动类,调用驱动类
Class.forName(driver);
这时候,会报一个找不到类的异常,可以写throws ClassNotFoundException抛出异常也可以捕获异常:try…catch…;建议捕获异常,try…catch…是一种事务性的保障,可以保证程序在异常情况下能运行完毕,同时告知程序中出错的详细信息,方便程序员解决问题。
接着,向MySQL发出请求,连接MySQL。在引进Connection的时候,引进的是import java.sql.Connection;包,不是import java.jdbc.sql.Connection;包,这里需要额外注意一下,不然后面会报错。
Connection con=DriverManager.getConnection(url, username, password);
写完connection后,又会报第二个异常,数据库异常,所以也要捕获异常。
准备一个createStatement()方法,调用executeQuery()向MySQL发送执行语句,返回结果集。
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select *from user");
定义一个为null的User初始值和users集合。
User user=null;
List<User> users=null;
遍历结果集条数,给user对象赋值,添加到users集合。
while(rs.next()){
user=new User();
user.setUserid(rs.getInt("userid"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
users.add(user);
}
循环显示user表里面的所有username字段。
for (User user2 : users) {
System.out.println(user2.getUsername());
}
关闭链接,每写一个链接,都要进行关闭。
rs.close();
st.close();
con.close();
} catch (ClassNotFoundException e) {//找不到类异常
e.printStackTrace();
} catch (SQLException e) {//数据库异常
e.printStackTrace();
}
}
完。