Spring实战4之数据源篇
来源:互联网 发布:云计算的商业模式 编辑:程序博客网 时间:2024/06/05 05:37
一、JDBC配置
(1)引入mysql-connector-java的库
(2)RootConfig 中加入DataSource的配置,这里使用的是Spring的jdbc连接控制器,并配置JdbcTemplate
@Configuration@EnableWebMvcpublic class RootConfig { @Bean public DataSource dataSource(){ DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/test"); ds.setUsername("root"); ds.setPassword("1"); return ds; } @Bean public JdbcOperations jdbcTemplate(DataSource ds){ return new JdbcTemplate(ds); }}
(3)在UserRepositoryImpl中使用jdbcOperations来获取数据,简单暴力
@Repositorypublic class UserRepositoryImpl implements UserRepository{ @Autowired private JdbcOperations jdbcOperations; public List<User> findAll(){ return jdbcOperations.query("select * from t_user", new RowMapper<User>() { @Override public User mapRow(ResultSet resultSet, int i) throws SQLException { return new User( resultSet.getInt("userId"), resultSet.getString("name"), resultSet.getString("email") ); } }); }}
(4)UserRepository接口
public interface UserRepository { List<User> findAll();}
(5)User类
public class User { public User(){ } public User(int userId,String name,String mail){ this.userId = userId; this.name = name; this.mail = mail; } private int userId; public int getUserId(){ return this.userId; } public void setUserId(int userId){ this.userId = userId; } private String name; public String getName(){ return this.name; } public void setName(String name){ this.name = name; } private String mail; public String getMail(){ return this.mail; } public void setMail(String mail){ this.mail = mail; }}
(6)HomeController类
@Controllerpublic class HomeController { @Autowired private UserRepository userRepository; @RequestMapping(value="/",method= RequestMethod.GET) public String home(){ List<User> users = userRepository.findAll(); for( User user : users ){ System.out.println(user.getName()+","+user.getMail()); } return "home"; }}
二、Spring4整合MyBatis3
(1)新建MybatisConfig文件
import javax.sql.DataSource; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @EnableTransactionManagement public class MybatisConfig { @Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setUsername("admin"); dataSource.setPassword("admin"); //如果其他数据库换对应的驱动即可 dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); dataSource.setUrl("jdbc:sqlserver://blog.csdn.net.unix21:3499;DatabaseName=testdb"); return dataSource; } @Bean MapperScannerConfigurer mpperScannnerConfigurer() { MapperScannerConfigurer msc = new MapperScannerConfigurer(); msc.setSqlSessionFactoryBeanName("sqlSessionFactory"); msc.setBasePackage("com.unix.mapper");//自动扫描mapper包 return msc; } @Bean(name = "sqlSessionFactory") SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) { SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean(); ssfb.setDataSource(dataSource); ssfb.setTypeAliasesPackage("com.unix.bean");//自动扫描bean包 return ssfb; } @Bean PlatformTransactionManager transactionManager(DataSource dataSource) { DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(); transactionManager.setDataSource(dataSource); return transactionManager; } }
(2)新增一个mapper接口
public interface SchoolMapper { @Select("select * from School where id =#{id}") School findById(@Param("id") int id); @Select("select * from School where Name like '${name}%'") List<School> findByName(@Param("name") String name); }
(3)测试用例
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = MybatisConfig.class) //@TransactionConfiguration(defaultRollback=true) public class SchoolTest { @Autowired private SchoolMapper shoolDao; @Test public void findById(){ School shool = shoolDao.findById(1); Assert.assertNotNull(shool); System.out.println(shool.getName()); } @Test public void findByName(){ List<School> result = shoolDao.findByName("苏州中学"); Assert.assertNotNull(result); for (School s : result) { System.out.println(s.getName()); } } }
Mybatis3.x与Spring4.x整合
阅读全文
0 0
- Spring实战4之数据源篇
- Spring数据源Spring数据源配置之JDBC
- spring实战4之容器篇
- Spring实战4之AOP篇
- Spring实战4之高级配置篇
- Spring实战4之SpringMVC篇
- Spring实战4之SpringMVC高级篇
- Spring实战4之缓存篇
- Spring之数据源整理
- Spring实战4之Spring Web Flow篇
- Spring实战4之Spring Security
- Spring数据源配置之Hibernate
- Spring数据源支持之Mybatis
- Spring数据源配置之c3p0
- Spring数据源配置之dpcp
- Spring数据源配置之bonecp
- Spring数据源配置之Druid
- Spring数据源配置之jndi
- java中异常的处理
- opencv从0开始 Android篇
- ArcGIS 10.2 Desktop完全破解图文安装教程
- layui-表单集合
- 关于随机数应用的小整合
- Spring实战4之数据源篇
- PLSQL
- gradle——eclipse中安装与web项目创建
- (HDU 6024 女生专场)Building Shops 简单DP详细解答
- unity之屏幕截图
- bzoj 1083 繁忙的都市(瓶颈生成树)
- 网页打开pdf文件屏蔽打印保存解决方案
- j2ee的web项目,并发是什么意思,举个例子。
- [leetcode: Python]22. Generate Parentheses