栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring整合MyBatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring整合MyBatis

整合MyBatis思路分析

Mybatis应该管SqlSessionFactory

整合MyBatis

1、导入坐标

 

        
            org.springframework
            spring-context
            5.2.10.RELEASE
        

        
            com.alibaba
            druid
            1.1.16
        

        
            org.mybatis
            mybatis
            3.5.6
        

        
            mysql
            mysql-connector-java
            5.1.47
        

        
            org.springframework
            spring-jdbc
            5.2.10.RELEASE
        

        
            org.mybatis
            mybatis-spring
            1.3.0
        
    

 2、创建SpringConfig配置类,添加@Configuration注解,添加@ComponentScan注解

3、创建JdbcConfig配置类,创建DataSource的Bean

4、在SpringConfig配置类使用注解@Import,引入JdbcConfig配置类

5、创建MybatisConfig类,将其引入SpringConfig

  •         创建SqlSessionFactoryBean 
    •         //设置类型别名的包
    •         //使用装配注入datasource
  •         创建MapperScannerConfigurer的Bean

 6、创建App类,执行代码,测试能否链接成功

public class App {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
        UserService userService = ctx.getBean(UserService.class);
        List users = userService.findALL();
        System.out.println(users);
    }
}

执行结果
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/restaruant?characterEncoding=utf8&serverTimezone=Asia/Shanghai
7月 20, 2022 3:49:50 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info
信息: {dataSource-1} inited
[User{userid=1, usercode='admin', userpwd='admin', isadmin=true, username='华xx', telephone='23122333445', gender='男', age=30, address='江苏苏州', createdon=Tue May 11 22:10:57 CST 2021, updatetime=Sun May 23 21:08:59 CST 2021}, User{userid=2, usercode='tchuayekai', userpwd='1234567', isadmin=false, username='小华', telephone='222333344551', gender='男', age=21, address='江苏苏州', createdon=Tue May 11 22:11:01 CST 2021, updatetime=Mon May 17 22:46:45 CST 2021}, User{userid=3, usercode='tchuayekai1', userpwd='123456', isadmin=false, username='null', telephone='null', gender='null', age=null, address='null', createdon=Wed May 19 23:01:10 CST 2021, updatetime=Wed May 19 23:01:10 CST 2021}, User{userid=4, usercode='admin2', userpwd='123', isadmin=true, username='null', telephone='null', gender='null', age=null, address='null', createdon=Wed May 19 23:13:26 CST 2021, updatetime=Wed May 19 23:13:26 CST 2021}, User{userid=5, usercode='xiaohua', userpwd='123456', isadmin=false, username='null', telephone='null', gender='null', age=null, address='null', createdon=Sat May 22 15:15:30 CST 2021, updatetime=Sat May 22 15:15:30 CST 2021}, User{userid=6, usercode='xiaohuaadmin', userpwd='123456', isadmin=true, username='null', telephone='null', gender='null', age=null, address='null', createdon=Sat May 22 15:15:48 CST 2021, updatetime=Sat May 22 15:15:48 CST 2021}, User{userid=7, usercode='admin3', userpwd='123456', isadmin=true, username='null', telephone='null', gender='null', age=null, address='null', createdon=Sat May 22 15:17:48 CST 2021, updatetime=Sat May 22 15:17:48 CST 2021}, User{userid=8, usercode='admin4', userpwd='123456', isadmin=true, username='哈哈哈哈', telephone='13466774567', gender='男', age=44, address='北京', createdon=Sat May 22 15:18:22 CST 2021, updatetime=Sat May 22 16:31:37 CST 2021}, User{userid=9, usercode='admin5', userpwd='123456', isadmin=true, username='admin5', telephone='18722223333', gender='男', age=18, address='江苏无锡', createdon=Sat May 22 15:26:39 CST 2021, updatetime=Sat May 22 16:28:04 CST 2021}, User{userid=10, usercode='admin11', userpwd='admin', isadmin=true, username='admin11', telephone='null', gender='null', age=null, address='null', createdon=Sun May 23 22:22:33 CST 2021, updatetime=Sun May 23 22:22:33 CST 2021}]

各个类的完整代码

完整目录:

SpringConfig
@Configuration
@PropertySource("classpath:jdbc.properties")
@ComponentScan("com.hyk")
@Import({JdbcConfig.class,MybatisConfig.class})
public class SpringConfig {

}
 JdbcConfig
public class JdbcConfig {

    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    @Bean
    public DataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        System.out.println(driver);
        System.out.println(url);
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return  dataSource;
    }
}
MyBatisConfig
public class MybatisConfig {

    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
        //设置类型别名的包
        ssfb.setTypeAliasesPackage("com.hyk.domain");
        //使用装配注入datasource
        ssfb.setDataSource(dataSource);
        return ssfb;
    }

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        //设置映射的包
        msc.setBasePackage("com.hyk.dao");
        return msc;
    }

}
jdbc.properties

根据引用的版本不同jdbc.driver = com.mysql.jdbc.Driver或者com.mysql.cj.jdbc.Driver

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/restaruant?characterEncoding=utf8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=******
UserDao
public interface UserDao {
    
    @Select("select * from user")
    List findALL();

    
    @Select("select * from user where userid=#{id}")
    public User findById(int id);

    
    @Insert("insert into user(userid,usercode,username) values(#{userid},#{usercode},#{username})")
    int save(User user);

    
    @Update("update user set username=#{username},usercode=#{usercode} where userid=#{userid}")
    int update(User user);

    
    @Delete("delete from user where userid = #{id}")
    int delete(int id);

}
User
public class User {
    private Integer userid;
    private String usercode;
    private String userpwd;
    private Boolean isadmin;
    private String username;
    private String telephone;
    private String gender;
    private Integer age;
    private String address;
    private Date createdon;
    private Date updatetime;

    @Override
    public String toString() {
        return "User{" +
                "userid=" + userid +
                ", usercode='" + usercode + ''' +
                ", userpwd='" + userpwd + ''' +
                ", isadmin=" + isadmin +
                ", username='" + username + ''' +
                ", telephone='" + telephone + ''' +
                ", gender='" + gender + ''' +
                ", age=" + age +
                ", address='" + address + ''' +
                ", createdon=" + createdon +
                ", updatetime=" + updatetime +
                '}';
    }

    public Integer getUserid() {
        return userid;
    }

    public void setUserid(Integer userid) {
        this.userid = userid;
    }

    public String getUsercode() {
        return usercode;
    }

    public void setUsercode(String usercode) {
        this.usercode = usercode;
    }

    public String getUserpwd() {
        return userpwd;
    }

    public void setUserpwd(String userpwd) {
        this.userpwd = userpwd;
    }

    public Boolean getIsadmin() {
        return isadmin;
    }

    public void setIsadmin(Boolean isadmin) {
        this.isadmin = isadmin;
    }

    public String getUsername() {
        return username;
    }

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

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Date getCreatedon() {
        return createdon;
    }

    public void setCreatedon(Date createdon) {
        this.createdon = createdon;
    }

    public Date getUpdatetime() {
        return updatetime;
    }

    public void setUpdatetime(Date updatetime) {
        this.updatetime = updatetime;
    }
}
UserService
public interface UserService {
    
    List findALL();

    
    public User findById(int id);

    
    int save(User user);

    
    int update(User user);

    
    int delete(int id);

}
UserServiceImpl
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public List findALL() {

        return userDao.findALL();
    }

    @Override
    public User findById(int id) {
        return userDao.findById(id);
    }

    @Override
    public int save(User user) {
        return userDao.save(user);
    }

    @Override
    public int update(User user) {
        return userDao.update(user);
    }

    @Override
    public int delete(int id) {
        return userDao.delete(id);
    }
}
App
public class App {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
        UserService userService = ctx.getBean(UserService.class);
        List users = userService.findALL();
        System.out.println(users);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024300.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号