利用JDBC在java中实现数据库连接查询等操作
在数据库软件中建立数据库:
#建立数据库
CREATE DATABASE test1;
#建立表
CREATE TABLE IF EXISTS dept;
#建立表名
CREATE TABLE dept (
depno int(11) NOT NULL,
dname varchar(20) DEFAULT NULL,
locvarchar(30) DEFAULT NULL,
PRIMARY KEY (depno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#输入数据
insert into dept values (10,‘后勤’,‘房间10’),(20,‘运营’,‘房间20’),(30,‘销售’,‘房间30’);
#查询数据
SELECT *FROM dept;
Java实现数据库连接:
使用idea软件导入jar包的方法可以参考这位博主的文章IDEA导入jar包的方法
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBHelper {
// Mysql5.5及以上版本需要在数据库名称test1后面添加?charart---等解释,5.5以下的版本则不用
public static final String URL="JDBC:mysql://localhost:3306/test1?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
// 数据库账号
public static final String USERNAME="root";
// 账号密码
public static final String PSW="123456";
public static Connection Conn;
public static Connection getConn(){
try {
Class.forName("com.mysql.cj.jdbc.Driver");
try {
Conn = DriverManager.getConnection(URL,USERNAME,PSW);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return Conn;
}
// 关闭数据库
public static void closeconn(Connection conn){
if (Conn!=null){
try {
Conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//若不为空则代表连接成功
public static void main(String[] args) {
System.out.println(DBHelper.getConn());
}
}
输出结果:
建立查询所有信息和查询某个部门信息的接口:
public interface UserInfoDao {
// 查询所有信息
public List<UserInfo> findAllUser();
// 查询某个部门信息
public UserInfo findUserById(int id);
}
建立数据信息类:
public class UserInfo {
private int depno;
private String dname;
private String loc;
public int getDepno() {
return depno;
}
public void setDepno(int depno) {
this.depno = depno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
public UserInfo(int depno, String dname, String loc) {
super();
this.depno = depno;
this.dname = dname;
this.loc = loc;
}
public UserInfo() {
super();
}
}
实现接口的类:
import cn.zc.Dao.UserInfoDao;
import cn.zc.entity.UserInfo;
import cn.zc.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
//查询所有部门信息
public class UserInfoDaoImpl implements UserInfoDao {
@Override
public List<UserInfo> findAllUser() {
List<UserInfo> lists = new ArrayList<UserInfo>();
// 获取数据库连接对象
Connection conn = DBHelper.getConn();
// 书写SQL语句操作数据库
String sql = "select *from dept";
// 预编译sql语句
try {
PreparedStatement ps = conn.prepareStatement(sql);
// 查询
ResultSet rs = ps.executeQuery();
// 循环输出
while (rs.next()) {
//有数据则返回ture
UserInfo ui = new UserInfo();
ui.setDepno(rs.getInt(1));
ui.setDname(rs.getString(2));
ui.setLoc(rs.getString(3));
lists.add(ui);
}
} catch (SQLException e) {
e.printStackTrace();
}
return lists;
}
//查询某个部门的类
@Override
public UserInfo findUserById(int no) {
// 获取数据库连接对象
UserInfo ui = null;
Connection conn = DBHelper.getConn();
// 书写SQL语句操作数据库
String sql = "select *from dept where depno=?";
// 预编译sql语句
try {
PreparedStatement ps = conn.prepareStatement(sql);
// 赋值
ps.setInt(1,no);
// 查询
ResultSet rs = ps.executeQuery();
// 循环输出
while (rs.next()) {
//有数据则返回ture
ui = new UserInfo();
ui.setDepno(rs.getInt(1));
ui.setDname(rs.getString(2));
ui.setLoc(rs.getString(3));
}
} catch (SQLException e) {
e.printStackTrace();
}
return ui;
}
}
具体实现类:
import cn.zc.Dao.UserInfoDao;
import cn.zc.Impl.UserInfoDaoImpl;
import cn.zc.entity.UserInfo;
import java.util.List;
public class Test {
public static void main(String[] args) {
//查询输出所有信息
UserInfoDao depno = new UserInfoDaoImpl();
List<UserInfo> list = depno.findAllUser();
for (UserInfo u : list) {
System.out.println(u.getDepno()+"\t"+u.getDname()+"\t"+u.getLoc());
}
//查询部门号为20的数据
UserInfo ui = depno.findUserById(20);
if (ui!=null){
System.out.println("找到部门信息");
System.out.println(ui.getDepno()+"\t"+ui.getDname()+"\t"+ui.getLoc());
}else{
System.out.println("没有这个部门");
}
}
}
转载:https://blog.csdn.net/CSDN9825/article/details/110673771
查看评论