一夸溶、流程模板
//1. 配置mybatis
Configuration configuration = configuration();
//2. 獲取SqlSessionFactory
SqlSessionFactory sessionFactory = new DefaultSqlSessionFactory(configuration);
//3. 獲取Session
SqlSession sqlSession = sessionFactory.openSession(true);
//4. 獲取Mapper
OrignUserMapper mapper = sqlSession.getMapper(OrignUserMapper.class);
三逸吵、代碼實戰(zhàn)
1. 建表結(jié)構(gòu)
CREATE TABLE `user` (
`id` bigint(20) NOT NULL COMMENT '主鍵ID',
`name` varchar(30) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年齡',
`email` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '郵箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
2. Bean
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
3. Mapper代碼
Mapper ?接口綁定實現(xiàn)方式(三種)? 本例使用第二種。
- 1.通過 XML Mapper 里面寫 SQL 來綁定蜘醋。
- 2.通過注解綁定胁塞,就是在接口的方法上面加上 @Select、@Update压语、@Insert、@Delete 注解编检。
- 3.通過注解綁定胎食,在接口的方法上面加上 @SelectProvider、@UpdateProvider允懂、@InsertProvider厕怜、@DeleteProvider 注解,通過 Java 代碼,生成對應(yīng)的動態(tài) SQL
public interface OrignUserMapper {
@Select(" select name from user where id = #{l} ")
User selectById(long l);
@Insert(" insert into `user_center`.`user` ( `id`, `age`, `email`, `name`) values (#{id}, #{age}, #{email}, #{name}); ")
long insert(User user);
}
4. 測試類
/**
* @ClassName : MybatisTest
* @Description : 手動獲取mapper測試
* @Author : hack2012
* @Date: 2020-12-18 04:24
*/
public class MybatisTest {
@Test
public void testConnect(){
//1. 配置mybatis
Configuration configuration = configuration();
//2. 獲取SqlSessionFactory
SqlSessionFactory sessionFactory = new DefaultSqlSessionFactory(configuration);
//3. 獲取Session
SqlSession sqlSession = sessionFactory.openSession(true);
//4. 獲取Mapper
OrignUserMapper mapper = sqlSession.getMapper(OrignUserMapper.class);
long id = 2l;
User user = new User();
user.setId(id);
user.setName("name1");
user.setAge(20);
user.setEmail("aaaa@aa.com");
long insert = mapper.insert(user);
System.out.println(insert);
User user_new = mapper.selectById(id);
System.out.println(user_new);
}
private Configuration configuration(){
Configuration configuration = new Configuration();//new MybatisConfiguration();
//1. 設(shè)置環(huán)境配置
configuration.setEnvironment(getEnv());
//2. 添加mapper映射
configuration.addMapper(OrignUserMapper.class);
//設(shè)置下劃線轉(zhuǎn)駝峰命名
// configuration.setMapUnderscoreToCamelCase(true);
return configuration;
}
//初始化環(huán)境配置
public Environment getEnv(){
TransactionFactory transFactory = new JdbcTransactionFactory();
MysqlDataSource datasource = new MysqlDataSource();
datasource.setUrl("jdbc:mysql://xxxxxxxx:13306/user_center?&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false");
datasource.setUser("root");
datasource.setPassword("xxxxxxxxxxxxxxx");
return new Environment("did", transFactory, datasource);
}
}