JdbcTemplate 学习笔记

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

    }

插入数据成功

转载于:https://blog.51cto.com/357712148/2366552

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值