您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页实习日志2-ssm框架

实习日志2-ssm框架

来源:尚车旅游网

今天学习了如何使用IDEA实现数据库的增删改查以及ssm框架。

数据库连接与封装

设计表

JAVA数据封装

作为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 + '\'' +
                '}';
    }
}

JAVA数据库驱动封装

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. 首先我们创建一个工具类,我这里叫DButil
  2. 然后首先把数据库驱动名、数据库URL、用户名和密码这四大必备属性进行封装
  3. 接下来我们把获取驱动直接写成一个静态代码块,因为每次使用这个工具类都需要获取驱动,为了提高性能和避免空间浪费,我们直接将其写成一个static代码块,这样在类第一次被加载时就完成了驱动的注册
  4. 而对于创建连接和关闭资源这两个操作,我们可以将其写成静态方法,方便每次数据库操作时对其进行调用

实现如下:

    //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();
        }
    }

JAVA数据库操作的封装

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);
    }
}

搭建ssm框架

基本概念

Spring
一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVC
一款表现层MVC框架,Spring MVC 分离了模型、视图、控制器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis
一个持久层的框架,在使用上相比Hibernate更加灵活,可以控制sql的编写,使用 XML或注解进行相关的配置。其针对jdbc的封装, 保留了jdbc的sql编写方式,优化了参数绑定,返回值封装等缺点.学习成本低。

构建项目

  1. 打开IDEA File -> New -> Project -> Maven -> 勾选 Create from archetype
    -> 选择 maven-archetype-webapp
  2. 项目结构如下:

整合项目

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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务