首先创建一个数据库,创建一个表
例如下图这样的
建立一个实体类
1.一般情况会与数据库中表内的数据类型一致
2. 建议:成员变量的名字要和数据库里面的字段名一致
3. 建议:使用基本数据类型的包装类
代码如下:
package a_preparedstatement;
public class Person {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
然后在创建个java文件写增删改查的方法
package a_preparedstatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import utils.JDBCUtil;
public class PersonDao {
/* 使用PreparedStatement 增删改查 *//** * 出入一个Person类对象,保存数据到数据库中 * @param person * @return int类型,返回值大于0表示添加成功,返回0表示添加数据失败 */
public int add(Person person) {
Connection conn = null;
PreparedStatement statement = null;
try {conn = JDBCUtil.getConnection();
String sql = "insert into person(name, age) values(?,?)";
//预处理SQL语句,获取到PreparedStatementstatement = conn.prepareStatement(sql);
//给予参数statement.setString(1, person.getName());statement.setInt(2, person.getAge());
//执行SQL语句return statement.executeUpdate();
} catch (SQLException e) {
// TODO: handle exceptione.printStackTrace();
}
finally {
JDBCUtil.close(conn, statement);
}
return 0;
}
/** * 更具ID删除数据库里面的数据 * @param id * @return int类型,返回值大于0表示删除成功,返回0表示删除数据失败 */
public int deleteById(int id) {
Connection conn = null;
PreparedStatement statement = null;
try {
conn = JDBCUtil.getConnection();
String sql = "delete from person where id = ?";statement = conn.prepareStatement(sql);statement.setInt(1, id);
return statement.executeUpdate();
} catch (SQLException e) {
// TODO: handle exceptione.printStackTrace();
} finally {
JDBCUtil.close(conn, statement);}return 0;}
/** * 修改Person的个人信息 * @param person 传入的Person类对象 * @return int类型,返回值大于0表示修改成功,返回0表示修改数据失败 */
public int update(Person person) {
Connection conn = null;
PreparedStatement statement = null;
try {
conn = JDBCUtil.getConnection();
String sql = "update person set name=?, age=? where id=?";
statement = conn.prepareStatement(sql);
statement.setString(1, person.getName());
statement.setInt(2, person.getAge());
statement.setInt(3, person.getId());
return statement.executeUpdate();
} catch (SQLException e) {
// TODO: handle exception}
finally {
}
return 0;
}
/** * 查询数据库里面的所有的Person信息,返回一个List集合 * @return 返回保存Person类对象的List集合 */
public ListfindAll() {
ResultSet set = null;
Connection conn = null;
PreparedStatement statement = null;
Listlist = new ArrayList();
try {
conn = JDBCUtil.getConnection();
String sql = "select * from person";
statement = conn.prepareStatement(sql);
set = statement.executeQuery();
while (set.next()) {
Person p = new Person();
p.setId(set.getInt("id"));
p.setName(set.getString("name"));
p.setAge(set.getInt("age"));
list.add(p);
}
return list;
} catch (Exception e) {
// TODO: handle exception
} finally {
JDBCUtil.close(conn, statement, set);
}
return null;
}
/**
* 根据ID 查询数据库中的Person信息,返回一个Person类对象
* @param id 要查询的PersonID
* @return 返回一个Person类对象,如果没有找到,返回null
*/
public Person findById(int id) {
ResultSet set = null;
Connection conn = null;
PreparedStatement statement = null;
Person p = null;
try {
conn = JDBCUtil.getConnection();
String sql = "select * from person where id=?";
statement = conn.prepareStatement(sql);
statement.setInt(1, id);
set = statement.executeQuery();
if (set.next()) {
p = new Person();
p.setId(set.getInt("id"));
p.setName(set.getString("name"));
p.setAge(set.getInt("age"));
}
return p;
} catch (Exception e) {
// TODO: handle exception
} finally {
JDBCUtil.close(conn, statement, set);
}
return null;
}
}
最后写个视图层,也就是页面,在控制台显示的
package a_preparedstatement;
import java.util.Scanner;
public class ViewDemo01 {
public static void main(String[] args) {
PersonDao pd = new PersonDao();
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("###############");
System.out.println("1.添加数据");
System.out.println("2.删除数据");
System.out.println("3.更新数据");
System.out.println("4.查看所有数据");
System.out.println("5.查询指定数据");
System.out.println("6.退出");
System.out.println("¥¥¥¥¥¥¥¥¥¥¥¥");
System.out.println("###############");
int choose = sc.nextInt();
switch (choose) {
case 1:
System.out.println("请输入姓名");
String name = sc.nextLine();
System.out.println("请输入年龄");
int age = sc.nextInt();
Person p = new Person();
p.setName(name);
p.setAge(age);
pd.add(p);
break;
case 2 :
System.out.println("请输入要删除的id");
int id = sc.nextInt();
pd.deleteById(id);
break;
case 3:
System.out.println("请输入姓名");
String name1 = sc.nextLine();
System.out.println("请输入年龄");
int age1 = sc.nextInt();
Person p2 = new Person();
p2.setName(name1);
p2.setAge(age1);
pd.update(p2);
break;
case 4:
pd.findAll();
break;
case 5:
System.out.println("请输入要查看的人的id");
id = sc.nextInt();
pd.findById(id);
break;
case 6:
System.out.println("退出程序");
System.exit(0);
break;
default:
break;
}
}
}
}
这样就好了
主要掌握SQL语句
网友评论