主要熟悉JDBC对数据库的操作,将增删查改操作封装起来。
工具:IDEA 2018.2, JDK 1.8, MySQL 5.5.58, jar包 :mysql-connector-java-8.0.13\mysql-connector-java-8.0.13.jar
1.使用idea新建项目后,进入File -> ProjectStructure,点击图中的+号,选择1,选择MySQL的jar包,点击Apply;
2.成功导入jar包;
3.进入数据库,创建数据库project,新建表users;
4.在表中录入相关数据;
5.编写数据表对应的实体类;
public class users {
private String username;
private String password;
private String id;
private String type;
public users(String id,String username, String password, String type) {
this.id = id;
this.username = username;
this.password = password;
this.type = type;
}
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 String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "users{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", id='" + id + '\'' +
", type='" + type + '\'' +
'}';
}
}
1.配置JDBC数据库连接信息;
//mysql驱动包名
private static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
//数据库连接地址
private static final String URL = "jdbc:mysql://localhost:3306/project?serverTimezone=UTC";
//用户名
private static final String USER_NAME = "root";
//密码
private static final String PASSWORD = "*****";
2.编写释放资源函数;
public static void close(ResultSet resultSet,PreparedStatement statement,Connection conn){
try {
if(resultSet != null){
resultSet.close();
}
if(statement != null){
statement.close();
}
if(conn != null){
conn.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
本函数用以关闭相关数据库操作完成后未关闭的资源,避免重复编写连接关闭代码。
3.封装数据库查询方法
public static List findAll(){
Connection connection = null;
PreparedStatement prst = null;
ResultSet rs = null;
List list = new ArrayList();
try {
//1.加载mysql的驱动类
Class.forName(DRIVER_NAME);
//2.获取数据库连接
connection = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
//3.mysql查询语句
String sql = "SELECT * FROM users";
//4.获取statement对象
prst = connection.prepareStatement(sql);
//5.结果集
//prst.execute();
rs = prst.executeQuery();
//6.对结果集进行操作
while (rs.next()) {
//System.out.println("用户名:" + rs.getString("name"));
String id = rs.getString(1);
String name = rs.getString(2);
String password = rs.getString(3);
String type = rs.getString(4);
users user = new users(id,name,password,type);
list.add(user);
}
//7.关闭链接
} catch (Exception e) {
e.printStackTrace();
} finally {
Test.close(rs,prst,connection);
}
//System.out.println(list.toString());
return list;
}
4.调用封装的查询方法;
List queryAll = new ArrayList();
queryAll = Test.findAll();
System.out.println(queryAll.toString());
直接调用查询结果,可获得查询的结果集。
1.在前面的基础上,编写插入方法;
public static void insert(String sql){
Connection connection = null;
PreparedStatement prst = null;
ResultSet rs = null;
try {
//1.加载mysql的驱动类
Class.forName(DRIVER_NAME);
//2.获取数据库连接
connection = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
//3.mysql查询语句
//4.获取statement对象
prst = connection.prepareStatement(sql);
//5.结果集
prst.execute();
//6.对结果集进行操作
//7.关闭链接
} catch (Exception e) {
e.printStackTrace();
} finally {
Test.close(rs,prst,connection);
}
}
2.调用插入函数,实现插入操作;
String insertSql = "insert into users values('2','猴子','9888','动物')";
Test.insert(insertSql)
3.插入成功;
1.删除操作的方法步骤与插入的方法大致相同;
2.调用删除方法;
String delSql = "delete from users where id = '2'";
Test.del(delSql);
1.更新操作的方法步骤与插入的方法大致相同;
2.调用更新方法;
String updateSql = "update users set username = '名称' where id = '1'";
Test.update(updateSql);
1.Java目录:Java相关代码;
bean:实体类,和数据库相对应;
dao:对数据库的操作;
service:业务层;
controller:决定url跳转到哪个界面。
2.resource:配置文件。
3.webapp:页面文件。
4.SSM项目主要技术点:
Spring:IOC(控制反转)容器,可以装载bean。常用到Spring的aop,事务管理;
SpringMVC:基于MVC的web框架;
MyBatis:对数据库的封装,将数据库表与业务实体联系起来,ORM持久层框架。