今天学习了如何使用IDEA实现数据库的增删改查以及ssm框架。
作为java语言的三大特性(封装,继承,多态,C++亦然)之一,有着至关重要的作用,今天我们学习了java的数据封装,主要包括:
1.对属性的封装
2.get和set方法的编写
3.构造函数的编写
4.toString函数的重写
//实体类:映射数据库的字段
public class User {
//1.对属性的封装
private String username;//用户名
private String password;//用户密码
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;
}
//3.构造方法封装
public User(String username, String password) {
this.username = username;
this.password = password;
}
public User() {
}
//4.toString方法的重写
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
JDBC的连接步骤
//1.获取驱动
Class.forName("com.mysql.jdbc.Driver");
//2.创建连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8&user=root&password=123");
System.out.println("数据库连接成功" + conn);
//3.编写sql
String sql = "insert into tb_user(username,password) values(?,?)";
//4.获取存放sql的对象
pstm = conn.prepareStatement(sql);
//5.填坑
pstm.setString(1, "张三丰");
pstm.setString(2, "123456");
//6.执行并得到Sql语句
//(增删改)executeUpdate:返回int类型的值;(查询);executeQuery:返回的结果集
int i = pstm.executeUpdate();
if (i > 0) {
System.out.println("增加成功");
} else {
System.out.println("增加失败");
}
//7.释放连接:从里到外
if(rs!=null){
try{
rs.close();
}catch (SQLException ex){
ex.printStackTrace();
}
}else if (pstm!=null) {
try {
pstm.close();
}catch(SQLException ex) {
ex.printStackTrace();
}
}else if(conn!=null){
try {
conn.close();
}catch (SQLException ex){
ex.printStackTrace();
}
}
在这里我们可以发现:
获取驱动、创建连接和关闭资源这三个操作是会被经常使用的,如果每次都单独写一遍,代码量会非常多并且很繁琐,这时我们就应该进行封装操作:
实现如下:
//1.基本数据private
private static String driver="com.mysql.jdbc.Driver";
private static String url="jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8";
private static String user="root";
private static String password="123";
static {
try{
Class.forName(driver);
}catch(Exception e) {
e.printStackTrace();
}
}
//2.创建连接
public static Connection get_Conn() throws SQLException {
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println("数据库连接成功"+conn);
return conn;
}
public static void get_Closeconn(ResultSet rs, PreparedStatement pstm,Connection conn) throws SQLException {
if(rs!=null){
rs.close();
}
if(pstm!=null){
pstm.close();
}
if(conn!=null){
conn.close();
}
}
public class TestUser {
Connection conn = null;
PreparedStatement pstm=null;
ResultSet rs=null;
//测试增加
public void addUser(User user){
try {
//1.获取连接
conn=DBUtil.get_Conn();
//2.获取存放sql存放语句的对象
pstm=conn.prepareStatement("insert into tb_user(username,password) value (?,?)");
//3.填坑
pstm.setString(1,user.getUsername());
pstm.setString(2,user.getPassword());
//4.执行sql并得到结果
int i=pstm.executeUpdate();
if(i>0){
System.out.println("增加成功");
}else{
System.out.println("增加失败");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
DBUtil.get_Closeconn(rs,pstm,conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
TestUser t=new TestUser();
User user1=new User("user1","123456");
User user2=new User("user2","123456");
t.addUser(user1);
t.addUser(user2);
}
}
Spring
一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVC
一款表现层MVC框架,Spring MVC 分离了模型、视图、控制器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis
一个持久层的框架,在使用上相比Hibernate更加灵活,可以控制sql的编写,使用 XML或注解进行相关的配置。其针对jdbc的封装, 保留了jdbc的sql编写方式,优化了参数绑定,返回值封装等缺点.学习成本低。
spring在进行管理时,是很有条理的,每个层都由spring管理,然后不同的层可以调用其它层,Handler调用service,service调用mapper等。
整合dao层。mybatis和spring整合,通过spring管理mapper接口。使用mapper的扫描器自动扫描mapper接口在spring中进行注册
整合service层。通过spring管理 service接口。使用配置方式将service接口配置在spring配置文件中。实现事务控制。
整合springmvc。由于springmvc是spring的模块,不需要整合.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务