导包:
mybatis配置:
在mybatis.xml中导入dtd
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
设置类型约束
<typeAliases><!--配置服务类型,因为类型都为实体类,所以类型名就为包名-->
<package name="包名"/>
</typeAliases>
设置事务管理
<transactionManager type="JDBC"/>
设置数据源
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/库名"/>
<property name="username" value="root"/>
<property name="password" value="1"/>
</dataSource>
设置映射的xml文件
<mappers>
<!--为mybatis添加映射关系-->
<mapper resource="Mappers/studentMapper.xml"/>
</mappers>
配置mapper.xml文件:
标题头
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
配置映射地址
<mapper namespace="dao.StudentDao">
</mapper>
在mapper中配置sql语句
设置查询语句
<select id="映射的方法名" resultType="映射的返回类型">
select * from 表名
</select>
设置增加语句(
#{}:相当于jdbc中的?(占位符)
concat(拼接函数):相当于JDBC中的字符拼接
参数类型为实体类时,可直接传入类中的属性名
传入的参数过多时需使用注解命名类区分数据
如:
@Param("pageSize")int pageSize,@Param("pageCode")int pageCode
)
<insert id="方法名" parameterType="传入参数的类型">
insert into student values(#{属性名},#{属性名},#{属性名})
</insert>
设置更改语句
<update id="方法名">
update student set 字段名=#{参数名} where 字段名=#{参数名}
</update>
设置删除语句
<delete id="方法名">
delete from student where 字段名=#{参数名}
</delete>
配置Mybatis工具
package util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MybatisUtil {
//加载Mybatis配置
//创建sqlsessionfactory对象
//创建sqlsession连接对象
//关闭sqlsession对象
private static SqlSessionFactory sessionFactory;
static {
//使用IO流加载mybatis
try {
InputStream is= Resources.getResourceAsStream("mybatis.xml");
//加载完毕后,创建SqlSession工厂对象
sessionFactory=new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取sqlsessio
public static SqlSession getSqlSession(){
return sessionFactory.openSession();
}
//关闭sqlsession
public static void closeSqlSession(SqlSession s) {
if (s != null) {
s.close();
}
}
}