java连接数据库增删查改应用实例



java连接数据库增删查改应用实例。mysql数据库简单操作实例。根据指定ID操作数据库,指定ID更新删除等。

创建数据库是sql语句:

CREATE DATABASE bank;

创建数据表的sql语句:

CREATE TABLE users (
id int(11) NOT NULL,
name varchar(20) DEFAULT NULL,
age int(11) DEFAULT NULL,
tel varchar(20) DEFAULT NULL,
address varchar(50) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

数据库实体类UserVo.java源码:

package com.cn.vo;

public class UserVo {
private int id;
private String name;
private int age;
private String tel;
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}

}

 创建数据库连接的java类JDBC_Connection.java

package com.cn.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC_Connection {

static String drivername =”com.mysql.jdbc.Driver”;
static String url=”jdbc:mysql://localhost:3306/bank”;
static String username=”root”;
static String password=”root”;
//创建驱动的静态代码块
static{
try {
Class.forName(drivername);//创建驱动
System.out.println(“创建驱动成功!”);
} catch (ClassNotFoundException e) {
System.out.println(“创建驱动失败!请检查驱动!”);
e.printStackTrace();
}
}
/**
* 连接数据库的方法
* @return
*/
public static Connection getConnection(){
Connection conn = null;
try {
conn = (Connection) DriverManager.getConnection(url, username, password);//创建连接
System.out.println(“连接数据库成功!”);
} catch (SQLException e) {
System.out.println(“连接数据库失败!请检查url、username或者password”);
e.printStackTrace();
}
return conn;
}
/**
* 该方法用于关闭结果集、连接和Statement对象。
* @param rs
* @param conn
* @param stmt
*/
public static void free(ResultSet rs,Connection conn ,Statement stmt){

try {
if(rs !=null)
rs.close();//关闭结果集
} catch (SQLException e) {
System.out.println(“关闭ResultSet失败!”);
e.printStackTrace();
}finally {

try {
if(conn != null)
conn.close();//关闭连接
} catch (SQLException e) {
System.out.println(“关闭Connection失败!”);
e.printStackTrace();
}finally{
try {
if(stmt != null)
stmt.close();//关闭Statement对象
} catch (SQLException e) {
System.out.println(“关闭Statement失败!”);
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
//调用该类的getConnection方法,测试连接是否成功
JDBC_Connection.getConnection();
}

}

AddUser.java向数据库中添加信心的java源码:

package com.cn.add;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.cn.jdbc.JDBC_Connection;
import com.cn.vo.UserVo;

public class AddUser {
public void add(UserVo userVo){
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;

try {
//调用JDBC_Connection类的getConnection方法连接数据库
conn = JDBC_Connection.getConnection();
//添加数据的sql语句
String sql = “insert into users(id,name,age,tel,address) values(?,?,?,?,?)”;
pstm = conn.prepareStatement(sql);
pstm.setInt(1, userVo.getId());//把添加的id值存入pstm对象中,int类型的值用setInt()方法
//把添加的name值存入pstm对象中String类型的值用setString方法
pstm.setString(2,userVo.getName());
pstm.setInt(3,userVo.getAge());//把添加的age值存入pstm对象中
pstm.setString(4, userVo.getTel());//把添加的tel值存入pstm对象中
pstm.setString(5, userVo.getAddress());//把添加的address值存入pstm对象中

pstm.executeUpdate();//提交pstm对象
System.out.println(“添加成功!添加的内容如下:”);
System.out.println(“id:”+userVo.getId()+”\t name:”+userVo.getName()
+”\t age:”+userVo.getAge()+”\t tel:”+userVo.getTel()+
“\t address:”+userVo.getAddress());

} catch (Exception e) {
e.printStackTrace();
} finally {
JDBC_Connection.free(rs, conn, pstm);
}
}
public static void main(String[] args) {
AddUser addUser = new AddUser();
UserVo userVo = new UserVo();
int id =107;
String name=”赵六”;
int age=22 ;
String tel=”324242″;
String address = “似懂非懂发”;
//下面是设置要添加的变量值,放入UserVo对象中
userVo.setId(id);
userVo.setName(name);
userVo.setAge(age);
userVo.setTel(tel);
userVo.setAddress(address);
//调用add()方法,把UserVo对象作为参数传递
addUser.add(userVo);
}
}

查询数据库的java类Query.java源码:


package com.cn.query;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.cn.jdbc.JDBC_Connection;
import com.cn.vo.UserVo;

public class Query {

public List<UserVo> showUser(){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
List<UserVo> list = new ArrayList<UserVo>();//声明一个List集合,用于存放查询出的数据
try {
conn = JDBC_Connection.getConnection();//连接数据库
stmt = conn.createStatement();//建立Statement对象
rs = stmt.executeQuery(“select * from users”);

while(rs.next()){//结果集存在,则进行循环遍历
UserVo userVo = new UserVo();
userVo.setId(rs.getInt(“id”));
userVo.setName(rs.getString(“name”));
userVo.setAge(rs.getInt(“age”));
userVo.setTel(rs.getString(“tel”));
userVo.setAddress(rs.getString(“address”));

list.add(userVo);//把每次获得的对象数据放入list集合中
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBC_Connection.free(rs, conn, stmt);//关闭连接
}
return list;
}
public static void main(String[] args) {
Query query = new Query();
List<UserVo> list=query.showUser();//调用查询方法
//如果list集合不为空,则循环遍历打印出所有的信息
if(list!=null){
for (int i = 0; i < list.size(); i++) {
System.out.print(“id:”+list.get(i).getId()+”\t”);
System.out.println();
System.out.print(“name:”+list.get(i).getName()+”\t”);
System.out.println();
System.out.print(“age:”+list.get(i).getAge()+”\t”);
System.out.println();
System.out.print(“tel:”+list.get(i).getTel()+”\t”);
System.out.println();
System.out.print(“address:”+list.get(i).getAddress()+”\t”);
System.out.println();
}
}
}
}

QueryById.java源码,根据ID查询mysq数据库:

package com.cn.query;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.cn.jdbc.JDBC_Connection;
import com.cn.vo.UserVo;

public class QueryById {
public UserVo queryUserById(int id) {
UserVo userVo = null;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;

try {
conn = JDBC_Connection.getConnection();
pstmt = conn.prepareStatement(“select * from users where id = ?”);
pstmt.setInt(1, id);//设置条件id
rs =pstmt.executeQuery();
while(rs.next()){//结果集存在,则遍历结果,放入UserVo对象中
userVo = new UserVo();
userVo.setId(rs.getInt(“id”));
userVo.setName(rs.getString(“name”));
userVo.setAge(rs.getInt(“age”));
userVo.setTel(rs.getString(“tel”));
userVo.setAddress(rs.getString(“address”));
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBC_Connection.free(rs, conn, pstmt);//关闭连接
}
return userVo;
}
public static void main(String[] args) {
QueryById byId = new QueryById();
int id =2;
UserVo vo=byId.queryUserById(id);
if(vo!=null){
System.out.println(“id”+vo.getId());
System.out.println(“name”+vo.getName());
System.out.println(“age”+vo.getAge());
System.out.println(“tel”+vo.getTel());
System.out.println(“address”+vo.getAddress());
}else{
System.out.println(“id为”+id+”的用户不存在!”);
}
}
}

DeleteUser.java根据指定ID删除数据库信息:

package com.cn.delete;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.cn.jdbc.JDBC_Connection;

public class DeleteUser {
public void deleteUser(int id) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn =JDBC_Connection.getConnection();
String sql = “delete from users where id =?”;
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);//给sql语句里的id赋值
pstmt.executeUpdate();
System.out.println(“删除成功!”);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBC_Connection.free(null, conn, pstmt);//关闭连接
}

}
public static void main(String[] args) {
DeleteUser deleteUser = new DeleteUser();
int id = 001;
deleteUser.deleteUser(id);
}
}

UpdateUser.java源码,更新mysql数据库实例:

package com.cn.update;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.cn.jdbc.JDBC_Connection;
import com.cn.vo.UserVo;

public class UpdateUser {
public void update(UserVo userVo){
Connection conn = null;
PreparedStatement pstmt = null;
//根据id修改的sql语句
String sql = “update users set id=?, name=? ,age=?, tel=?, address=? where id = ?”;

try {
conn = JDBC_Connection.getConnection();//连接数据库
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, userVo.getId());
pstmt.setString(2, userVo.getName());
pstmt.setInt(3, userVo.getAge());
pstmt.setString(4, userVo.getTel());
pstmt.setString(5, userVo.getAddress());
pstmt.setInt(6, userVo.getId());
pstmt.executeUpdate();
System.out.println(“修改成功!”);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBC_Connection.free(null, conn, pstmt);//关闭连接
}
}
public static void main(String[] args) {
UpdateUser updateUser =new UpdateUser();
int id=107;
String name=”Jack”;
int age = 19;
String tel = “123-465465″;
String address = “银河系”;
UserVo userVo = new UserVo();
//把修改的变量值放入userVo对象中
userVo.setId(id);
userVo.setName(name);
userVo.setAge(age);
userVo.setTel(tel);
userVo.setAddress(address);
updateUser.update(userVo);
}
}