Spring Jdbc浅谈

a 夏天 提交于 2019-12-04 21:54:47

1.配置

  在maven文件src/main/resources位置上配置一个applicationContext-jdbc.xml文件用来做配置。

  <1>JdbcTemplate的配置

      即配置dataSource装入连接池数据作为jdbcTemplate的属性

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
  <property name="driverClassName" value="${mysql_driver}"></property>
  <property name="url" value="${mysql_url}"></property>
  <property name="username" value="${mysql_username}"></property>
  <property name="password" value="${mysql_passwd}"></property>
 </bean>
 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  <property name="dataSource" ref="dataSource"></property>
 </bean>

  

  <2>连接池数据的配置(即数据库的账户密码等需要用到的数据)

mysql_driver=com.mysql.cj.jdbc.Driver
mysql_url=jdbc:mysql://localhost:3306/shujukukkkkk?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
mysql_username=root
mysql_passwd=225510

 

  <3>将类自动扫描装配,同时将连接池配置在properties的位置加载

 

//将连接池用到的数据位置写入<context:property-placeholder location="config/DB.properties"/>
//将需要自动扫描类的包名写入   <context:component-scan base-package="com.zzxtit.springboot.jdbc"></context:component-scan>  

 

2.具体实现springjdbc

  <1>创立user  数据类 以及userdao 数据操作类

 

     SysUser的建立(对应数据库中的数据  以及get set方法)

package com.zzxtit.springboot.jdbc;

public class SysUser {
 
 private String userName;
 
 private String passwd;
 
 private String salt;
 
 private String realName;
 
 private String avatar;
 
 private String phone;
 
 private String email;
 
 private int gender;
 private Integer userId;
 
 public Integer getUserId() {
  return userId;
 }
 @Override
 public String toString() {
  return "SysUser [userName=" + userName + ", passwd=" + passwd + ", salt=" + salt + ", realName=" + realName
    + ", avatar=" + avatar + ", phone=" + phone + ", email=" + email + ", gender=" + gender + ", userId="
    + userId + "]";
 }
 public void setUserId(Integer userId) {
  this.userId = userId;
 }
 public String getUserName() {
  return userName;
 }
 public void setUserName(String userName) {
  this.userName = userName;
 }
 public String getPasswd() {
  return passwd;
 }
 public void setPasswd(String passwd) {
  this.passwd = passwd;
 }
 public String getSalt() {
  return salt;
 }
 public void setSalt(String salt) {
  this.salt = salt;
 }
 public String getRealName() {
  return realName;
 }
 public void setRealName(String realName) {
  this.realName = realName;
 }
 public String getAvatar() {
  return avatar;
 }
 public void setAvatar(String avatar) {
  this.avatar = avatar;
 }
 public String getPhone() {
  return phone;
 }
 public void setPhone(String phone) {
  this.phone = phone;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 public int getGender() {
  return gender;
 }
 public void setGender(int gender) {
  this.gender = gender;
 }

 
}

      userdao的实现

        包括jdbaTemplate增删改查  以及通过namedJdbcTemplate的添加

package com.zzxtit.springboot.jdbc;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private NamedParameterJdbcTemplate npjTemplate;
    //通过id添加数据
    public void insertUserInfo(SysUser su) {
        
        String sql = "insert into t_sys_user (user_name, passwd, salt, real_name, avatar, phone, "
                + "email, gender, create_time) values (?, ?, ?, ?, ?, ?, ?, ?, now())";
        jdbcTemplate.update(sql, su.getUserName(), su.getPasswd(), su.getSalt(), su.getRealName(), 
                su.getAvatar(), su.getPhone(), su.getEmail(), su.getGender());
    }
    
  //通过id查找数据
    public SysUser getUserById(int userId) {
        
        String sql = "select * from t_sys_user where user_id = ?";
        return jdbcTemplate.query(sql, new Object[] {userId}, new BeanPropertyRowMapper<SysUser>(SysUser.class)).get(0);
    }  //通过id删除数据
    public void deleteById(int userId) {
        String sql="delete from t_sys_user where user_id = ?";
        jdbcTemplate.update(sql, userId);
    }  //通过id修改数据
    public void rebuiltById(SysUser su,int userId) {
        String sql = "update  t_sys_user set user_name = ?, passwd = ?, salt = ? , real_name = ?, avatar = ?, phone = ?, "
                + "email = ?, gender = ?, create_time =  now() where user_id = ?";
        jdbcTemplate.update(sql, su.getUserName(), su.getPasswd(), su.getSalt(), su.getRealName(), 
                su.getAvatar(), su.getPhone(), su.getEmail(), su.getGender(),userId);
        
    }
    //通过namedJdbcTemplate添加数据(即利用map对象,不用使用?)
public void insertByNJP(SysUser su) {
        
        String sql = "insert into t_sys_user (user_name, passwd, salt, real_name, avatar, phone, "
                + "email, gender, create_time) values (:useName, :passwd, :salt, :realName, :avatar, :phone,:email,:gender, now())";
    
            Map<String,Object> paramMap = new HashMap<String,Object>();
            paramMap.put("useName", su.getUserName());
            paramMap.put("passwd", su.getPasswd());
            paramMap.put("salt", su.getSalt());
            paramMap.put("realName", su.getRealName());
            paramMap.put("avatar", su.getAvatar());
            paramMap.put("phone", su.getPhone());
            paramMap.put("email", su.getEmail());
            paramMap.put("gender", su.getGender());
            
            npjTemplate.update(sql,paramMap);
    }
}

 3.用主函数创建ioc连接spring进行使用

public static void main(String[] args) {
        ApplicationContext ioc = new ClassPathXmlApplicationContext("config/applicationContext-jdbc.xml");
        
        UserDao ud = ioc.getBean(UserDao.class);     SysUser su1 = ud.getUserById(4);     su1.setUserName("haha");      su1.setPhone("5146842365");      ud.insertUserInfo(su1);}

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!