Java数据库连接

作者:小符
撰写时间: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 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();
			}
}

完。

你可能感兴趣的:(JAVA)