第一个例子
实现步骤:
- 创建student表(id,name,email,age)
- 新建maven项目
- 修改pom.xml
1)加入依赖(本地仓库/联网下载) mybatis依赖, mysql驱动, junit 2)在<build> 加入资源插件 - 创建实体类Student。定义属性, 属性名和列名保持一致
- 创建Dao接口, 定义操作数据库的方法。
- 创建xml文件(mapper文件), 写sql语句。
mybatis框架推荐是把sql语句和java代码分开 mapper文件:定义和dao接口在同一目录, 一个表一个mapper文件。 - 创建mybatis的主配置文件(xml文件):有一个, 放在resources目录下
1)定义创建连接实例的数据源(DataSource)对象 2)指定其他mapper文件的位置 - 创建测试的内容。
1)使用main方法,测试mybatis访问数据库 2)也可以使用junit 访问数据库
有几个小点,记录一下,怕忘了 😐
查询操作中
占位符:
mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/springdb?useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="666666"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
</mappers>
</configuration>
@Test
public void testSelectStudentById2() throws IOException {
String config = "mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(config);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = factory.openSession();
String sqlId = "com.bjpowernode.dao.StudentDao" + "." + "selectStudentById";
Student student = session.selectOne(sqlId,1002);
System.out.println("使用mybatis查询一个学生:" + student);
session.close();
}
测试mybatis执行sql语句 另一种查询:
sql的id = namespace+"."+ select|update|insert|delete标签的id属性值
@Test
public void testSelectStudentById3() throws IOException {
String config = "mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(config);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = factory.openSession();
String sqlId = "abc.myselect";
Student student = session.selectOne(sqlId,1002);
System.out.println("使用mybatis查询一个学生:" + student);
session.close();
}
添加操作
在StudentDao.xml中的mapper标签中添加
<insert id="insertStudent">
insert into student values(1004,"丸子六","wanziliu@qq.com",20)
</insert>
MyTest.java修改如下: mybatis默认执行sql语句是 手工提交事务 模式, 在做insert,update ,delete 后需要提交事务。 代码修改如下: 执行效果: 如果想动态插入数据: 如果传入给mybatis是一个java对象,使用#{属性名} 获取此属性的值。 属性值放到 #{} 占位符的位置, mybatis执行此属性对应的getXXX() . 例如 #{id} ,执行getId();
|