最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Spring5學(xué)習(xí)之JdbcTemplate詳解

 更新時間:2021年05月06日 10:52:45   作者:不善言談?wù)? 
這篇文章主要介紹了Java Spring5學(xué)習(xí)之JdbcTemplate詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下

一、JdbcTemplate

Spring 框架對 JDBC 進(jìn)行封裝,使用 JdbcTemplate 方便實現(xiàn)對數(shù)據(jù)庫操作

二、實戰(zhàn)

2.1 引入依賴

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.24</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>5.3.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.3.6</version>
        </dependency>

2.2 配置連接池

<!--引入外部屬性文件 -->
    <context:property-placeholder
        location="classpath:jdbc.properties" />

    <!-- 數(shù)據(jù)庫連接池 -->
    <bean id="dataSource"
        class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
        <property name="url" value="${prop.url}" />
        <property name="username" value="${prop.userName}" />
        <property name="password" value="${prop.password}" />
        <property name="driverClassName" value="${prop.driverClass}" />
    </bean>

2.3 配置JdbcTemplate 對象,注入 DataSource

 <!-- JdbcTemplate 對象 -->
    <bean id="jdbcTemplate"
        class="org.springframework.jdbc.core.JdbcTemplate">
        <!--注入 dataSource -->
        <property name="dataSource" ref="dataSource"></property>
    </bean>

2.4 掃描注解

<!-- 開啟注解掃描 -->
    <context:component-scan
        base-package="cn.zj.aop.an"></context:component-scan>

2.5 創(chuàng)建 service 類,創(chuàng)建 dao 類,在 dao 注入 jdbcTemplate 對象

@Repository
public class UserDaoImpl implements UserDao {

    //注入 JdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
}



@Service
public class UserService {

    // 注入 dao
    @Autowired
    private UserDao userDao;
    
}

三、操作(CRUD)

實體類

public class User {

    private String userId;
    private String username;
    private String ustatus;

    @Override
    public String toString() {
        return "User [userId=" + userId + ", username=" + username + ", ustatus=" + ustatus + "]";
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUstatus() {
        return ustatus;
    }

    public void setUstatus(String ustatus) {
        this.ustatus = ustatus;
    }

}

3.1 添加

service
//添加
    public void addUser(User user) {
        userDao.add(user);
    }
    
dao
@Override
    public void add(User user) {
        // 1 創(chuàng)建 sql 語句
        String sql = "insert into t_user values(?,?,?)";
        // 2 調(diào)用方法實現(xiàn)
        Object[] args = { user.getUserId(), user.getUsername(), user.getUstatus() };
        int update = jdbcTemplate.update(sql, args);
        System.out.println(update);

    }
    
測試

@Test
    public void test1() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        User user = new User();
        user.setUserId("1");
        user.setUsername("java");
        user.setUstatus("a");
        userService.addUser(user);
    }

結(jié)果

image.png

3.2 修改

service

//修改
    public void updateUser(User user) {
        userDao.updateUser(user);
    }

dao
@Override
    public void updateUser(User user) {
        // TODO Auto-generated method stub
        String sql = "update t_user set username=?,ustatus=? where userId=?";
        // 2 調(diào)用方法實現(xiàn)
        Object[] args = { user.getUsername(), user.getUstatus() ,user.getUserId()};
        int update = jdbcTemplate.update(sql, args);
        System.out.println(update);
    }
測試
@Test
    public void test2() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        User user = new User();
        user.setUserId("1");
        user.setUsername("javaScrip");
        user.setUstatus("abc");
        userService.updateUser(user);
    }

image.png

3.3 刪除

// 刪除
    public void deleteUser(String id) {
        userDao.deleteUser(id);
    }


@Override
    public void deleteUser(String id) {
        String sql="delete from t_user where userId=?";
        int update=jdbcTemplate.update(sql, id);
        System.out.println(update);
    }


@Test
    public void test3() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        
        userService.deleteUser("1");
    }

image.png

四、查詢

4.1 查詢總記錄數(shù) jdbcTemplate.queryForObject

@Test
    public void test4() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        
        int count = userService.selectUserCount();
        System.out.println("數(shù)據(jù)庫中共有記錄:"+count);
    }


//查詢記錄數(shù)
    public int  selectUserCount() {
        return userDao.selectCount();
    }


    @Override
    public int selectCount() {
        String sql = "select count(0) from t_user";
        Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
        return count;
    }

4.2 查詢返回對象

@Test
    public void test5() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        
        User user=userService.findUserInfo("1");
        System.out.println(user);
    }

//查詢對象
    public User findUserInfo(String id) {
        // TODO Auto-generated method stub
        return userDao.findUserInfo(id);
    }

@Override
    public User findUserInfo(String id) {
        String sql = "select userId,username,ustatus from t_user where userId=?";
        User user = jdbcTemplate.queryForObject(sql, new
                BeanPropertyRowMapper<User>(User. class),id);
        return user;
    }

4.3 查詢返回集合

@Test
    public void test6() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        
        List<User> list=userService.findAllUser();
        System.out.println(list);
    }

    //查詢返回集合
    public List<User> findAllUser(){
        return userDao.findAllUser();
    }

@Override
    public List<User> findAllUser() {
        String sql = "select userId,username,ustatus from t_user";
        List<User> list = jdbcTemplate.query(sql, new
                BeanPropertyRowMapper<User>(User. class));
        return list;
    }

五、批量操作 jdbcTemplate.batchUpdate

5.1 添加

@Test
    public void test7() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        List<Object[]> list =  new ArrayList<>();
        Object[] o1 = { "11", "易語言", "中文"};
        Object[] o2 = { "12", "c++", "cc"};
        Object[] o3 = { "13", "MySQL", "數(shù)據(jù)庫"};
        list.add(o1);
        list.add(o2);
        list.add(o3);
        userService.batchAdd(list);
    }

//批量添加
    public void batchAdd(List<Object[]> list){
        userDao.batchAdd(list);
    }

@Override
    public void batchAdd(List<Object[]> list) {
        String sql = "insert into t_user values(?,?,?)";
        int[] ints = jdbcTemplate.batchUpdate(sql, list);
        System.out.println(ints);
    }

5.2 修改

@Test
    public void test8() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        List<Object[]> list =  new ArrayList<>();
        Object[] o1 = {  "易語言易", "中文語言","11"};
        Object[] o2 = { "c++c", "ccccc","12"};
        Object[] o3 = {"MySQL+ORACle", "數(shù)據(jù)庫數(shù)據(jù)", "13"};
        list.add(o1);
        list.add(o2);
        list.add(o3);
        userService.batchUpdate(list);
    }


    //批量修改
    public void batchUpdate(List<Object[]> list) {
        userDao.batchUpdate(list);
    }

@Override
    public void batchUpdate(List<Object[]> list) {
        String sql = "update t_user set username=?,ustatus=? where userId=?";
        int[] ints = jdbcTemplate.batchUpdate(sql, list);
        System.out.println(ints);
    }

5.3 刪除

@Test
    public void test9() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        UserService userService = context.getBean("userService", UserService.class);
        List<Object[]> list =  new ArrayList<>();
        Object[] o1 = { "11"};
        Object[] o2 = { "12"};
        Object[] o3 = { "13"};
        list.add(o1);
        list.add(o2);
        list.add(o3);
        userService.batchDelete(list);
    }

    //批量刪除
    public void batchDelete(List<Object[]> list) {
        userDao.batchDelete(list);
    }

@Override
    public void batchDelete(List<Object[]> list) {
        String sql = "delete from t_user where userId=?";
        int[] ints = jdbcTemplate.batchUpdate(sql, list);
        System.out.println(ints);
    }

到此這篇關(guān)于Java Spring5學(xué)習(xí)之JdbcTemplate詳解的文章就介紹到這了,更多相關(guān)Java Spring5之JdbcTemplate內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA十大排序算法之歸并排序詳解

    JAVA十大排序算法之歸并排序詳解

    這篇文章主要介紹了java中的歸并排序,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • IDEA如何解決代碼沒有提示問題

    IDEA如何解決代碼沒有提示問題

    文章介紹了如何解決IDEA中代碼提示功能缺失的問題,首先,需要調(diào)整快捷鍵設(shè)置,將CyclicExpandWord鍵映射為Ctrl+/,其次,確保輸入框中設(shè)置為Basic,然后添加鍵盤快捷鍵Alt+/,如果問題依然存在,可能是由于電腦省電模式導(dǎo)致的,需要取消相關(guān)設(shè)置
    2024-11-11
  • Java instanceof關(guān)鍵字的的進(jìn)一步理解

    Java instanceof關(guān)鍵字的的進(jìn)一步理解

    這篇文章主要介紹了Java instanceof關(guān)鍵字的的進(jìn)一步理解,本文用一些實例講解了instanceof操作符的一些知識,需要的朋友可以參考下
    2015-03-03
  • SpringBoot實現(xiàn)嵌入式 Servlet容器

    SpringBoot實現(xiàn)嵌入式 Servlet容器

    傳統(tǒng)的Spring MVC工程部署時需要將WAR文件放置在servlet容器的文檔目錄內(nèi),而Spring Boot工程使用嵌入式servlet容器省去了這一步驟,本文就來設(shè)置一下相關(guān)配置,感興趣的可以了解一下
    2023-12-12
  • Layui前后臺交互數(shù)據(jù)獲取java實例

    Layui前后臺交互數(shù)據(jù)獲取java實例

    下面小編就為大家分享一篇Layui前后臺交互數(shù)據(jù)獲取java實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • SpringBoot生成jar/war包的布局應(yīng)用

    SpringBoot生成jar/war包的布局應(yīng)用

    在 Spring Boot 中,"布局應(yīng)用"(Application Layout)指的是打包生成的可執(zhí)行 jar 或 war 文件中的內(nèi)容組織結(jié)構(gòu),本文給大家介紹了SpringBoot生成jar/war包的布局應(yīng)用,需要的朋友可以參考下
    2024-02-02
  • 分析ThreadLocal內(nèi)存泄漏問題

    分析ThreadLocal內(nèi)存泄漏問題

    ThreadLocal的作用是提供線程內(nèi)的局部變量,這種變量在線程生命周期內(nèi)起作用,減少同一個線程內(nèi)多個函數(shù)或者組件之間一些公共變量傳遞的復(fù)雜度,但是如果濫用ThreadLocal可能會導(dǎo)致內(nèi)存泄漏,所以本文將為大家分析ThreadLocal內(nèi)存泄漏問題
    2023-07-07
  • Idea安裝Eslint插件提示:Plugin NativeScript was not installed的問題

    Idea安裝Eslint插件提示:Plugin NativeScript was not installed的問題

    這篇文章主要介紹了Idea安裝Eslint插件提示:Plugin NativeScript was not installed的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Spring指定bean在哪個應(yīng)用加載(示例詳解)

    Spring指定bean在哪個應(yīng)用加載(示例詳解)

    本文通過實例代碼介紹了Spring指定bean在哪個應(yīng)用加載,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-08-08
  • Java獲取視頻時長及截取幀截圖詳解

    Java獲取視頻時長及截取幀截圖詳解

    這篇文章主要介紹了Java獲取視頻時長及截取幀截圖詳解,以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。,需要的朋友可以參考下
    2019-06-06

最新評論

广西| 法库县| 南木林县| 喀什市| 吐鲁番市| 渭源县| 宝鸡市| 贺兰县| 磐安县| 扶风县| 阿拉尔市| 金沙县| 黔西县| 平泉县| 万盛区| 大荔县| 扶沟县| 兴国县| 交口县| 安吉县| 阿图什市| 龙里县| 谷城县| 广西| 勐海县| 江都市| 东乡县| 罗甸县| 兴和县| 邹平县| 富平县| 瑞安市| 巢湖市| 英德市| 望城县| 博野县| 锡林浩特市| 汝南县| 安西县| 荥经县| 永昌县|