Springboot入门之数据访问层

时间:2025-02-15 07:00:07

一、Springboot整合使用jdbcTemplete

文件引入

<parent>
        <groupId></groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2.配置(我的数据库没密码,你的加上就行)

=jdbc:mysql://localhost:3306/test
=root
#=
-class-name=

3.编写一个service接口和实现类

public interface UserService {
    public void insertJdbcUser();
}
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void insertJdbcUser() {
        ("insert into user values(null,?,?);","lisi",19);
    }
}

4.编写一个controller及启动类

@RestController
public class IndexController {
    @Autowired
    private UserService userService;

    @RequestMapping("/index")
    public String index(){
        ();
        return "success";
    }
}
@ComponentScan(basePackages = { "", "" })
@EnableAutoConfiguration
public class SpringBootApplication {
    public static void main(String[] args){
        (,args);
    }
}

二、Springboot整合使用mybatis

文件引入

<parent>
        <groupId></groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.</version>
    </parent>
    <dependencies>
        <!-- SpringBoot 核心组件 -->
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

2.配置(我的数据库没密码,你的加上就行)
=jdbc:mysql://localhost:3306/test
=root
#=
-class-name=
3.编写实体类及对应的Mapper代码

public class User {
    private Integer id;
    private String name;
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
         = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
         = name;
    }

    public Integer getAge() {
        return age;
    }

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

public interface UserMapper
{
    @Select("select * from user where name =#{name}")
    User getName(@Param("name")String name);
}

4.编写Controller及启动类

@Controller
public class Indexcontroller {
    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/index")
    public String index(){
        return "index";
    }

    @ResponseBody
    @RequestMapping("/getName")
    public User getName(String name){
        return (name);
    }
}
@ComponentScan(basePackages = { ""})
@MapperScan(basePackages = {""})
@EnableAutoConfiguration
public class SpringBootApplication {
    public static void main(String[] args){
        (,args);
    }
}

三、Springboot整合使用jpa

文件引入

<parent>
        <groupId></groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2.配置(我的数据库没密码,你的加上就行)

=jdbc:mysql://localhost:3306/test
=root
#=
-class-name=

3.创建实体类和Dao

@Entity(name = "user")
public class User {
    @Id
    @GeneratedValue
    private Integer id;
    @Column
    private String name;
    @Column
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
         = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
         = name;
    }

    public Integer getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "User{" +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

public interface UserRepository extends JpaRepository<User,Integer> {
}

4.编写Controller及启动类

@RestController
public class IndexController {
    @Autowired
    private UserRepository userRepository;
    @RequestMapping("/index")
    public String index(Integer id){
       User u= (id);
       return ();
    }
}
@ComponentScan(basePackages = { "" })
@EnableJpaRepositories(basePackages = {""})
@EntityScan(basePackages = {""})
@EnableAutoConfiguration
public class SpringbootApp {
    public static void main(String[] args) {
        (,args);
    }
}

四、Springboot整合多数据源

文件

<parent>
        <groupId></groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.</version>
    </parent>
    <dependencies>
        <!-- SpringBoot 核心组件 -->
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

. = 
. = jdbc:mysql://localhost:3306/test01?useUnicode=true&characterEncoding=utf-8
. = root
#. = root

. = 
. = jdbc:mysql://localhost:3306/test02?useUnicode=true&characterEncoding=utf-8
. = root
#. = root

3.新增两个数据源类

@Configuration// 注入到springboot容器中
@MapperScan(basePackages = ".test01", sqlSessionFactoryRef = "test1SqlSessionFactory")
public class Datasource1 {

	@Bean(name = "test1DataSource")
	@ConfigurationProperties(prefix = ".test1")
	@Primary
	public DataSource testDataSource() {
		return ().build();
	}

	@Bean(name = "test1SqlSessionFactory")
	@Primary
	public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource)
			throws Exception {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		(dataSource);
		// (
		// new
		// PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test1/*.xml"));
		return ();
	}

	@Bean(name = "test1TransactionManager")
	@Primary
	public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
		return new DataSourceTransactionManager(dataSource);
	}

	@Bean(name = "test1SqlSessionTemplate")
	public SqlSessionTemplate testSqlSessionTemplate(
			@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
		return new SqlSessionTemplate(sqlSessionFactory);
	}

}
@Configuration
@MapperScan(basePackages=".test02",sqlSessionFactoryRef="test2SqlSessionFactory")
public class Datasource2 {

	@Bean(name = "test2DataSource")
	@ConfigurationProperties(prefix = ".test2")
	public DataSource testDataSource() {
		return ().build();
	}

	@Bean(name = "test2SqlSessionFactory")
	public SqlSessionFactory testSqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource)
			throws Exception {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		(dataSource);
//		(
//				new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test2/*.xml"));
		return ();
	}
	
	@Bean(name = "test2TransactionManager")
	public DataSourceTransactionManager testTransactionManager(@Qualifier("test2DataSource") DataSource dataSource) {
		return new DataSourceTransactionManager(dataSource);
	}

	@Bean(name = "test2SqlSessionTemplate")
	public SqlSessionTemplate testSqlSessionTemplate(
			@Qualifier("test2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
		return new SqlSessionTemplate(sqlSessionFactory);
	}
}

4.分包创建实体类、Mapper和service

public class User {
    private Integer id;
    private String name;
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
         = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
         = name;
    }

    public Integer getAge() {
        return age;
    }

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

@CacheConfig(cacheNames = "baseCache")
public interface User1Mapper {

	@Insert("insert into user values(null,#{name},#{age});")
	public int addUser(@Param("name") String name, @Param("age") Integer age);
}
@Service
public class User01Service {
	@Autowired
	private User1Mapper user1Mapper;

	public int addUser(String name, Integer age) {
		return (name, age);
	}

}

5.同第四步创建另一个包,注意相应的1改为2

6.写Controller类和启动类

@RestController
public class Indexcontroller {
    @Autowired
    private User1Mapper user1Mapper;
    @Autowired
    private User2Mapper user2Mapper;

    @RequestMapping("/add")
    public String add() {
        ("Tung", 22);
        ("Clare", 22);
        return "成功!";
    }
}
@ComponentScan(basePackages = { "","",".test01",".test02"})
@EnableAutoConfiguration
public class SpringBootApplication {
    public static void main(String[] args){
        (,args);
    }
}

源代码见GitHub:/tangqiangDong/Springboot点击打开链接