mybatis与数据库连接

来源:互联网 发布:js css display 编辑:程序博客网 时间:2024/06/01 10:24

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


原创粉丝点击