JDBC的优化
昨天的实习内容是在Idea平台上用Java实现JDBC(具体内容见下面的一篇博客)。
JDBC详细实现步骤
第一次写JDBC,还不够完善,所以今天在老师的带领下完成了JDBC的优化。
初次接触MVC
MVC全名是Model View Controller,是模型-视图-控制器的缩写,一种软件设计典范。
Model(模型):处理应用程序中数据逻辑的部分,通常模型对象负责在数据库中存取数据。
View(视图):通常视图是依据模型数据创建的,负责处理数据显示。
Controller(控制器):是应用程序中处理用户交互的部分。
改进后的JDBC
bean包:UserInfo类及封装
package com.whut.bean;
public class UserInfo {
private int id;//封装
private String name;
private int age;
private String sex;
private String salary;
public UserInfo(String name, int age, String sex, String salary) {//构造方法
}
public int getId() {//getter
return id;
}
public void setId(int id) {//setter
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
public UserInfo(int id, String name, int age, String sex, String salary) {//toString,方便打印
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
this.salary = salary;
}
@Override
public String toString() {
return "UserInfo{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", salary='" + salary + '\'' +
'}';
}
}
dao包:增删改查方法的具体实现和主函数(只给出了查询和增添)
package com.whut.dao;
import com.whut.bean.UserInfo;
import com.whut.util.DBUtil;
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 UserInfoDao {
public List<UserInfo> findUsers() {
ResultSet resultSet = null;
PreparedStatement statement = null;
Connection connection = null;
List<UserInfo> userInfos = new ArrayList<>();
try {
//加载驱动 创建连接
connection = DBUtil.getConnection();
//System.out.println("创建连接成功");
//写sql
String sql = "select * from user";
//得到statement对象
statement = connection.prepareStatement(sql);
//执行sql得到结果集
resultSet = statement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
int age = resultSet.getInt(3);
String sex = resultSet.getString(4);
String salary = resultSet.getString(5);
UserInfo userInfo = new UserInfo(name, age, sex, salary);
userInfo.setId(id);
userInfos.add(userInfo);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(resultSet,statement,connection);//关闭资源
}
return userInfos;
}
public void addUser(UserInfo userInfo){
Connection connection=null;
PreparedStatement statement=null;
//1.加载驱动
try {
connection=DBUtil.getConnection();
//3.写sql
String sql="insert into userinfo (id,name,age,sex,salary) values (?,?,?,?,?)";
//4.得到statement对象
statement = connection.prepareStatement(sql);
statement.setInt(1,userInfo.getId());
statement.setString(2,userInfo.getName());
statement.setInt(3,userInfo.getAge());
statement.setString(4,userInfo.getSex());
statement.setString(5,userInfo.getSalary());
//5.执行sql 得到结果集
statement.executeUpdate();//添加
} catch (Exception e) {
e.printStackTrace();
}finally {
DBUtil.close(null,statement,connection);//关闭资源
}
}
public static void main(String[] args){
UserInfoDao test = new UserInfoDao();
test.findUsers();
test.addUser(new UserInfo("玛丽", 32, "女", "4000"));
}
}
DBUtil包:工具包,实现驱动加载,建立连接,释放连接
package com.whut.util;
import java.sql.*;
public class DBUtil {
public static Connection getConnection() {
//Connection connection=null;
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//创建连接
Connection connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=true&"+"characterEncoding=utf-8&user=root&password=root");
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println("创建连接成功");
return null;
}
public static void close(ResultSet resultSet, Statement statement,Connection connection){
//关闭资源
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection!=null){//为空的话会报错
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
ssm框架的初步理解
IDEA+Maven 整合SSM框架实现简单的增删改查
SSM框架(Spring + Spring MVC +Mybatis)是目前使用最多的java应用框架。
spring ioc 控制反转 spring帮我们创建对象 和 aop
springmvc 控制
mybatis 数据库操作
开发工具:
- IntelliJ IDEA 2018.2.2
- tomcat 9.0.94
- jdk1.8.0_201
- Mysql 5.5.58
- maven 3.6.0
工程结构:
更加详细的项目开发过程会在明天的博客里面介绍(欢迎评论)。