本博客主要讲解用Java语言从服务器如何连接数据库并对数据库进行增删改查操作。下面详细讲解:
首先需要引入mysql connector jar包,请大家自觉下载,并引入到项目中。接下来展现代码具体实现部分:
//该类负责连接数据库
public class DBCon {
private static String USER = "root";
private static String PASSWORD = "******";//自己创建数据库所设置的密码
private String MYSQL_URL="jdbc:mysql://localhost:3306/ttest";
private static Connection conn = null;
PreparedStatement pre = null;// 预编译对象
public Connection getConn() {
return conn;
}
public static void setConn(Connection conn) {
DBCon.conn = conn;
}
public DBCon()
{
try {
Class.forName("com.mysql.jdbc.Driver");//加载驱动
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("找不到驱动程序类 ,加载驱动失败!");
try {
conn = DriverManager.getConnection(MYSQL_URL, USER, PASSWORD);//创建数据库链接对象
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("数据库连接失败!!!");
}
}
}
//模型层用户
public class User {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
//该类负责对数据库进行各种增删改查操作
public class UsersDao {
public void addUser(User user){
DBCon dbcon=new DBCon();
Connection conn=dbcon.getConn();
try {
PreparedStatement pre=conn.prepareStatement("insert into users(name,password) values(?,?)");
pre.setString(1, user.getName());
pre.setString(2, user.getPassword());
pre.execute();
System.out.println("成功添加");
System.out.println("name="+user.getName()+" password="+user.getPassword());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void updateUser(User user){
DBCon dbcon=new DBCon();
Connection conn=dbcon.getConn();
try {
PreparedStatement pre=conn.prepareStatement("update users set password=? where name=?");
pre.setString(1, user.getPassword());
pre.setString(2, user.getName());
pre.execute();
System.out.println("成功更新");
System.out.println("name="+user.getName()+" password="+user.getPassword());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void deleteUser(String name){
DBCon dbcon=new DBCon();
Connection conn=dbcon.getConn();
try {
PreparedStatement pre=conn.prepareStatement("delete from users where name=?");
pre.setString(1, name);
pre.execute();
System.out.println("成功删除");
System.out.println("name="+name+"的个人信息");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public User getUser(String name){
User user=null;
DBCon dbcon=new DBCon();
Connection conn=dbcon.getConn();
try {
PreparedStatement pre=conn.prepareStatement("select * from users where name=?");
pre.setString(1, name);
ResultSet rs=pre.executeQuery();
while(rs.next()){
user=new User();
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
}
System.out.println("成功查询");
System.out.println(user.getName()+" "+user.getPassword());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return user;
}
public List<User> query(List<Map<String,Object>> params){
List<User> users = null;
User user;
DBCon dbcon=new DBCon();
Connection conn=dbcon.getConn();
StringBuilder sb=new StringBuilder();
sb.append("select name,password from users where 1=1");
if(params!=null&¶ms.size()>0){
for(int i=0;i<params.size();i++){
Map<String,Object> map=params.get(i);
sb.append(" and "+map.get("name")+" "+map.get("rela")+" "+map.get("value"));
}
}
try {
PreparedStatement pre=conn.prepareStatement(sb.toString());
ResultSet rs=pre.executeQuery();
users=new ArrayList<User>();
while(rs.next()){
System.out.println(rs.getString("name")+","+rs.getString("password"));
user=new User();
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
users.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return users;
}
}
jdbc基本知识就这些了,掌握基本原理就能灵活运用jdbc的相关知识了,博主第一次写博客,谢谢大家多多支持。