Mybatis框架——day01

一,日誌logmysql

  1.日誌:依賴包log4j,建立log配置文件,debug提供的信息更多,stdout輸出到控制檯,file輸出到文件sql

 

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d:/mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout

 

 

 

二,配置mybatis.xml文件,數據源和映射文件數據庫

 

<configuration>
    <environments default="dev">
        <environment id="dev">
            <!--數據源-->
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql:///bookstore"></property>
                <property name="username" value="root"></property>
                <property name="password" value="123456"></property>
            </dataSource>
        </environment>
    </environments>
    <!--引入映射文件-->
    <mappers>
      //經過配置文件引入 <mapper resource="Person.xml"></mapper>
      //經過包引入,此包在resources下,編譯後須要和src內的包同級 <package name="com.lanou.mapper"></package> </mappers> </configuration>

 

 

 

三,映射文件xml的配置,手動配置bean和數據庫表的映射關係apache

 

<mapper namespace="person">
   <!--能夠經過namespace.id調用sql語句,具體看測試類--> <resultMap id="personMap" type="com.lanou.entity.Person"> <!--id標籤配置的是主鍵--> <!--手動映射關係,而且主鍵返回,插入到類的對象中--> <id property="id" column="pid"></id> <result property="name" column="name"></result> <result property="age" column="age"></result> </resultMap> <!--使用手動映射--> <select id="findAll" resultMap="personMap"> SELECT * FROM person </select> </mapper>

 

<mapper namespace="com.lanou.mapper.PersonMapper">
    <resultMap id="personMap" type="com.lanou.entity.Person">
        <!--id標籤配置的是主鍵-->
        <!--手動映射關係,而且主鍵返回,插入到類的對象中-->
        <id property="id" column="pid"></id>
        <result property="name" column="name"></result>
        <result property="age" column="age"></result>
    </resultMap>
    <!--使用手動映射-->
    <select id="findAll" resultMap="personMap">
        SELECT * FROM person
    </select>
    <!--傳入的是pojo參數,參數名必須爲bean的屬性名-->
    <!--<insert id="insert" useGeneratedKeys="true" keyProperty="id">-->
        <!--INSERT INTO  person VALUES (null,#{name},#{age})-->
    <!--</insert>-->
    <!--自動映射,傳入基本類型參數,#{隨便寫}-->
    <!--<select id="findById" resultType="com.lanou.entity.Person">-->
    <select id="findById" resultMap="personMap">
        SELECT * FROM person WHERE pid = #{id}
    </select>

</mapper>

 

  接口代碼:mybatis

public interface PersonMapper {
    List<Person> findAll();

    int insert(Person person);

    List<Person> findByNameLike(String str);
}

  測試代碼:app

@Test
    public void test1() throws IOException {
        //加載全局配置文件
        InputStream resource = Resources.getResourceAsStream("mybatis.xml");
        //經過全局配置文件建立出SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resource);
        //經過SqlSessionFactory得到SqlSession,SqlSession相似於JDBC中的Connection
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //經過SqlSession執行sql語句,得到結果集
        //經過namespace.id 在映射文件中找到對應的sql
        List<Person> persons = sqlSession.selectList("person.findAll");
        for (Person person : persons) {
            System.out.println(person);
        }
    }
相關文章
相關標籤/搜索