//////////2016-12-24 ~ 2016-12-25///////////
int study_data(){
MyBatis - Log
log:
log是调试或者信息收集的一种手段
可以在系统运行过程中,查看某些关键数据
log 分为4个等级:
dubug
info
warning
error
log的功能
1.定义信息的级别
2.输出控制:在代码中需要的地方写log代码 logger.dubug("test");
MyBatis中是怎么确定用什么打log的?
1.如果没有指定,mabatis会在classpath中去找对应的实现类
搜索顺序就是上一页的顺序,一旦找到了一个,就用那个机制去打log,但是如果都没有,就不打log了
2.另外一种方式就是在config.xml里面指定下面是log4j的示例:
<settings>
<setting name="logImple" value="LOG4J" />
</setting>
value的有效值包含:SLF4J,LOG4J,LOG4J2,JDK_LOGGING,COMMONS_LOGGING,STDOUT_LOGGING,NO_LOGGING
MyBatis中支持的log类型包含:SLF4J,Apache Commons Logging,Log4j2,Log4j,JDK logging.
配置文件:
log4j.rootLogger=info,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
log4j.logger.包名=debug
定义log输出到哪里
console
file a.log
syslog eventlog
network
package.Class:method, line:message
定义输出级别
debug
logger.debug
logger.info
logger.waring
logger.error
error
logger.error
MyBatis - generator
generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动 -->
<classPathEntry location="mysql-connector-java-5.1.40-bin.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true" />
<!-- value:是否去除自动生成的注释 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据库链接url,用户名,密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/foodorder?serverTimezone=UTC&useSSL=false"
userId="zw" password="a89688075." />
<!-- 指定类型解析器 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 -->
<javaModelGenerator targetPackage="pojo" targetProject="C:\Users\tencent\workspace\FoodOrderSystem\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成映射文件的包名和位置 -->
<sqlMapGenerator targetPackage="dao" targetProject="C:\Users\tencent\workspace\FoodOrderSystem\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成dao的包名和位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="dao" targetProject="C:\Users\tencent\workspace\FoodOrderSystem\src"><property name="enableSubPackage" value="true" />
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体名 -->
<table tableName="collection" domainObjectName="Collection" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
</context>
</generatorConfiguration>自动生成文件命令:
Java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
连接配置成功之后,进入mybatis-generator-core-1.3.2的lib目录,在该目录按住Shift键,右键鼠标选择"在此处打开命令窗口",复制粘贴生成语句的文件代码即可。
MyBatis - java api
mybatis的特色是把所有的sql都写在xml文件里面,但是为了迎合一部分人的使用习惯,或者一些观念,它还是增加了纯java api的支持。
config代码实例:
//指定驱动,连接字符串
Properties p = new Properties();
p.put("driver", "com.mysql.jdbc.Driver");
p.put("url", "jdbc:mysql://localhost:3306/m2dbtest?serverTimezone=UTC&useSSL=false");
p.put("username", "zw");
p.put("password", "a89688075.");
//然后获得一个pool的data source
PooledDataSourceFactory dsFactory = new PooledDataSourceFactory();
dsFactory.setProperties(p);
DataSource ds = dsFactory.getDataSource();
//指定事物处理方式是jdbc的
JdbcTransactionFactory jdbcTF = new JdbcTransactionFactory();
//产生一个environment节点,给一个名字。并放入configuration节点。
Environment env = new Environment("dev", jdbcTF, ds);
Configuration configuration = new Configuration(env);
//在configuration节点中注册Mapper的信息
configuration.addMapper(UserMapper.class);
纯代码注解方式
在接口中的方法加上对应注解,即可不使用xml配置也可以对数据库进行操作。
MyBatis总结
}