温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JdbcTemplate 学习笔记

发布时间:2020-07-03 20:45:04 来源:网络 阅读:215 作者:知止内明 栏目:编程语言

pojo

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author liwen406
 * @Title: username
 * @Description: 用戶表 testngdb
 * @date 2019/3/19 / 12:24
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class UserName  implements Serializable {
    private Integer uid;
    private String username;
    private String passwrd;
    private Integer age;
}

UsernameDao

    /**
     * 用户保存
     * @param user
     */
    public int save(UserName user);

UsernameDaoimpl

 private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());

 @Override
    public int save(UserName user) {
        //1.定义sql
        String sql = "INSERT INTO user_table(username,passwrd,age,uid) VALUES (?,?,?,?)";
        //2.执行sql
        int update = template.update(sql, user.getUsername(),
                user.getPasswrd(),
                user.getAge(),
                user.getUid()
        );
        return update;

    }

工具类JDBCUtils:


import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * @author liwen406
 * @Title: JDBCUtils
 * @Description: 1. 声明静态数据源成员变量
 * 2. 创建连接池对象
 * 3. 定义公有的得到数据源的方法
 * 4. 定义得到连接对象的方法
 * 5. 定义关闭资源的方法
 * @date 2019/3/20 / 13:34
 */

public class JDBCUtils {
    // 1.   声明静态数据源成员变量
    private static DataSource ds;

    // 2. 创建连接池对象
    static {
        // 加载配置文件中的数据
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
        Properties pp = new Properties();
        try {
            pp.load(is);
            // 创建连接池,使用配置文件中的参数
            ds = DruidDataSourceFactory.createDataSource(pp);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 3. 定义公有的得到数据源的方法
    public static DataSource getDataSource() {
        return ds;
    }

    // 4. 定义得到连接对象的方法
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }

    // 5.定义关闭资源的方法
    public static void close(Connection conn, Statement stmt, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
            }
        }

        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
            }
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
            }
        }
    }

    // 6.重载关闭方法
    public static void close(Connection conn, Statement stmt) {
        close(conn, stmt, null);
    }
}

链接地址:

druid.properties
---------------------------------------------------
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/testngdb?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
username=root
password=123456
initialSize=5
maxActive=10
maxWait=3000
validationQuery: SELECT 1
testWhileIdle: true
timeBetweenEvictionRunsMillis: 28000

测试类

 BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
    UsernameDaoimpl usernameDaoimpl = new UsernameDaoimpl();

@Test
    public void usersabe() {

        UserName name = new UserName();
        name.setUsername("加油学习");
        name.setPasswrd("12345645");
        String encodedPassword = passwordEncoder.encode(name.getPasswrd().trim());
        name.setPasswrd(encodedPassword);
        name.setAge(33);
        name.setUid(33);
        int save = usernameDaoimpl.save(name);
        log.info("插入成功:"+save);
     //INSERT INTO user_table(username,passwrd,age,uid) VALUES('100121','$2a$10$GDHqk.gGI9l84i7ZLrMzGOzAP9WZ8tJY8iWobdDj/KyRBNvhPMiTG',23,293);

    }

插入数据成功

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI