溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

JdbcTemplate 學(xué)習(xí)筆記

發(fā)布時(shí)間:2020-07-03 20:45:04 來(lái)源:網(wǎng)絡(luò) 閱讀:215 作者:知止內(nèi)明 欄目:編程語(yǔ)言

pojo

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

import java.io.Serializable;

/**
 * @author liwen406
 * @Title: username
 * @Description: 用戶(hù)表 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

    /**
     * 用戶(hù)保存
     * @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.執(zhí)行sql
        int update = template.update(sql, user.getUsername(),
                user.getPasswrd(),
                user.getAge(),
                user.getUid()
        );
        return update;

    }

工具類(lèi)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. 聲明靜態(tài)數(shù)據(jù)源成員變量
 * 2. 創(chuàng)建連接池對(duì)象
 * 3. 定義公有的得到數(shù)據(jù)源的方法
 * 4. 定義得到連接對(duì)象的方法
 * 5. 定義關(guān)閉資源的方法
 * @date 2019/3/20 / 13:34
 */

public class JDBCUtils {
    // 1.   聲明靜態(tài)數(shù)據(jù)源成員變量
    private static DataSource ds;

    // 2. 創(chuàng)建連接池對(duì)象
    static {
        // 加載配置文件中的數(shù)據(jù)
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
        Properties pp = new Properties();
        try {
            pp.load(is);
            // 創(chuàng)建連接池,使用配置文件中的參數(shù)
            ds = DruidDataSourceFactory.createDataSource(pp);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 3. 定義公有的得到數(shù)據(jù)源的方法
    public static DataSource getDataSource() {
        return ds;
    }

    // 4. 定義得到連接對(duì)象的方法
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }

    // 5.定義關(guān)閉資源的方法
    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.重載關(guān)閉方法
    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

測(cè)試類(lèi)

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

@Test
    public void usersabe() {

        UserName name = new UserName();
        name.setUsername("加油學(xué)習(xí)");
        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);

    }

插入數(shù)據(jù)成功

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI