发表于: 2018-04-08 22:39:48

1 823


今天完成的事情: 

         在尝试mybatis连接MySQL实现增改删减。

          尝试两个例子:

           1.

接口类不知道为什么爆黑。

UserMapper

<?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="com.mybatis.IUser">

   <select id="getUser" parameterType="int"
           resultType="com.mybatis.User">
       SELECT *
       FROM USER
WHERE id = #{userId}
</select>


   <insert id="insertUser" parameterType="User">
       INSERT INTO USER(name,
dept, website,phone)
VALUES(#{name}, #{dept}, #{website}, #{phone})
</insert>

   <select id="getUserList" resultType="com.mybatis.User">
       SELECT * FROM USER
</select>

   <update id="updateUser" parameterType="User">
       UPDATE USER
SET
name=
#{name},
dept = #{dept},
website = #{website},
phone = #{phone}
WHERE
id =
#{id}
</update>

   <delete id="deleteUser" parameterType="int">
       DELETE FROM USER WHERE id = #{id}
</delete>

</mapper>

2.第二项目目录


USER

package com.mybatis;
public class User {
private int id;
   private String name;
   private int age;

   public int getId()
{
return id;
   }
public void setId(){
this.id=id;
   }
public String getName(){
return name;
   }
public void setName(){
this.name=name;
   }
public int getAge(){
return age;
   }
public void setAge(){
this.age=age;
   }

public String toString(){
return "User ---[id="+id+",name="+name+",age="+age+"]---";
   }

}

mabatis-config

<?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>

   <!-- 引用jdbc.properties配置文件 -->
   <properties resource="jdbc.properties"/>

   <!--typeAliases>
       <typeAlias alias="UserAlias" type="org.apache.ibatis.submitted.complex_property.User"/>
   </typeAliases-->

   <environments default="development">    <!--·默认的环境 ID(比如:default="development")-->
       <environment id="development">    <!--·每个 environment 元素定义的环境 ID(比如:id="development")-->
           <transactionManager type="JDBC"/>    <!--·事务管理器的配置(比如:type="JDBC")-->
           <!--数据源-->
           <dataSource type="POOLED">    <!--·数据源的配置(比如:type="POOLED")-->
               <property name="driver" value="jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
               <property name="username" value="root"/>
              <!--<property name="password" value="root"/>-->
           </dataSource>
       </environment>
   </environments>

   <!-- 注册userMapper.xml文件, userMapper.xml位于com.mybatis.mapping这个包下,
   所以resource写成com/mybatis/mapping/userMapper.xml-->
   <mappers>
       <mapper resource="UserMapper.xml"/>
   </mappers>

</configuration>

UserMapper

<?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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="com.mybatis.mapping.userMapper"就是com.mybatis.mapping(包名)+userMapper(userMapper.xml文件去除后缀)-->

<mapper namespace="UserMapper">
   <select id="getUser" parameterType="int"
           resultType="com.mybatis.User">
           select * from users where id=#{id}
</select>
</mapper>

test


import com.mybatis.User;

       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 Test {
public static void main(String[] args) throws IOException{
//mybatisde 配置文件
       String resource="mybatis-config.xml";
       //使用类加载器加载mybatis的配置文件
       InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
       //构建sqlSession的工厂
       SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
       //创建能执行映射文件中sql的sqlSession
       SqlSession session=sessionFactory.openSession();
       /*
        * 映射sql的标识字符串,
        * com.mybatis.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
        * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
        */
       //映射 sql的标识字符串
       String statement="UserMapper.getUser";

       User user=session.selectOne(statement,2);
       System.out.println(user);

   }
}


明天计划的事情: 

        遇到的BUG让我有种无从下手的错觉,一点头绪都没了

明天打算Spring+Mybatis+Maven+MySql搭建的项目骨架。从头开始重新尝试一遍。

遇到的问题:

第二项目直接爆红

log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 

### Error building SqlSession.

### The error may exist in SQL Mapper Configuration

### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource jdbc.properties

at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)

at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:80)

at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:64)

at Test.main(Test.java:18)

Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource jdbc.properties

at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:121)

at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:99)

at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:78)

... 2 more

Caused by: java.io.IOException: Could not find resource jdbc.properties

at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:114)

at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:100)

at org.apache.ibatis.io.Resources.getResourceAsProperties(Resources.java:128)

at org.apache.ibatis.builder.xml.XMLConfigBuilder.propertiesElement(XMLConfigBuilder.java:225)

at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:106)

... 4 more

Process finished with exit code 1


收获:

一大堆bug


返回列表 返回列表
评论

    分享到