1、导入mybatis的jar包
2、核心配置文件引入 configuration.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/benchmark_opencv"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="config/sqlxml/User.xml"/>
</mappers>
</configuration>
3、获取sqlsession参数,向sql传参数,执行sql语句,获取执行sql语句的结果,事物的控制
如何获得sqlsession:
1、通过配置文件获取数据库连接的相关信息
2、通过配置信息构建sqlsessionfactory
3、通过sqlsessionFactory打开数据库回话
4、创建db层用来访问数据库
package db;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* @author jjh
*访问数据库类
*
*/
public class dbAccess {
public SqlSession getSqlSession() throws IOException{
//通过配置文件获取数据库连接信息
Reader reader=Resources.getResourceAsReader("config/Configuration.xml");
//通过配置嘻嘻构建一个sqlsessionfactory
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
//通过sqlsessionfactory打开一个数据库回话
SqlSession sqlSession=sqlSessionFactory.openSession(false);
return sqlSession ;
}
}
5、关于sql语句的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="User"> //这边也可以区分
<resultMap type="bean.user" id="UserResult">
<id column="mailbox" jdbcType="VARCHAR" property="mailbox"/> //column:数据库 property:类里面
</resultMap>
<select id="find" parameterType="bean.user" resultMap="UserResult">
SELECT mailbox FROM user WHERE 1=1
<if test="mailbox !=null">
and mailbox=#{mailbox}
</if>
</select>
<insert id="insertmail" parameterType="bean.user">
insert into user(mailbox) values (#{mailbox})
</insert>
</mapper>
package Dao;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import bean.user;
import db.dbAccess;
public class userDao {
public void SaveMail(String mail){
dbAccess dbaccess=new dbAccess();
SqlSession sqlsession=null;
List<user> userList=new ArrayList<user>();
try {
sqlsession=dbaccess.getSqlSession();
//通过sqlSessin执行SQL语句
user useone=new user();
useone.setMailbox(mail);
userList=sqlsession.selectList("find",useone); //通过id来调用sql语句,id是唯一的名字
if(userList.isEmpty()){
sqlsession.insert("insertmail",useone);
sqlsession.commit();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(sqlsession !=null)
sqlsession.close();
}
}
}
6、动态拼接sql
userList=sqlsession.selectList("find",useone);
//只能传递一个参数
<select id="find" parameterType="bean.user" resultMap="UserResult">
SELECT mailbox FROM user WHERE 1=1
<if test="mailbox !=null">
and mailbox=#{mailbox}
</if>
</select>
OGNL表达式,独立的语言
7应用log4j进行调试
加入properties文件
log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.org.apache=INFO