Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added mybatis/lib/hamcrest-core-1.1.jar
Binary file not shown.
Binary file added mybatis/lib/junit-4.13.2.jar
Binary file not shown.
Binary file added mybatis/lib/lombok.jar
Binary file not shown.
Binary file added mybatis/lib/mybatis-3.5.7.jar
Binary file not shown.
Binary file added mybatis/lib/mysql-connector-java-8.0.27.jar
Binary file not shown.
31 changes: 31 additions & 0 deletions mybatis/mybatis-config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?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>
<settings>
<setting name="logImpl" value="JDK_LOGGING"/>
</settings>
<typeAliases>
<package name="com.test.entity"/>
<!-- mybatis扫描包里的类,别名为类名的小写 resultType不需要写完整的包.类名,直接用别名了-->
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/learn"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.test.mapper"/>
<!-- <mapper class="com.test.mapper.TestMapper"/>-->
<!-- url是xml文件在外部-->
<!-- resource是xml文件在内部-->
</mappers>

</configuration>
16 changes: 16 additions & 0 deletions mybatis/mybatis.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lombok" level="project" />
<orderEntry type="library" name="mybatis-3.5.7" level="project" />
<orderEntry type="library" name="mysql-connector-java-8.0.27" level="project" />
<orderEntry type="library" name="junit-4.13.2" level="project" />
<orderEntry type="library" name="hamcrest-core-1.1" level="project" />
</component>
</module>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
79 changes: 79 additions & 0 deletions mybatis/src/com/test/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package com.test;

import com.test.MybatisUtil;
import com.test.entity.Student;
import com.test.mapper.TestMapper;
import lombok.SneakyThrows;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.logging.*;

public class Main {
public static void main(String[] args) throws FileNotFoundException {
// SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(new FileInputStream("mybatis-config.xml"));
// try(SqlSession session=sqlSessionFactory.openSession(true)){
// List<Student> list =session.selectList("selectStudent");
// list.forEach(System.out::println);
//
// }
try (SqlSession session = MybatisUtil.getSession(true)) {
TestMapper mapper=session.getMapper(TestMapper.class);
System.out.println(mapper.addStudent(new Student().setName("BBB").setSid(114541)));
mapper.deleteStudent(65454);
XMLFormatter xmlFormatter=new XMLFormatter();
SimpleFormatter simpleFormatter=new SimpleFormatter();
Logger logger=Logger.getLogger(Main.class.getName());

FileHandler fileHandler=new FileHandler("test.log",true);
fileHandler.setFormatter(simpleFormatter);
fileHandler.setLevel(Level.WARNING);
logger.addHandler(fileHandler);


logger.setLevel(Level.WARNING);
logger.setUseParentHandlers(false);
ConsoleHandler consoleHandler=new ConsoleHandler();
consoleHandler.setLevel(Level.WARNING);
logger.addHandler(consoleHandler);

logger.setFilter(record -> !record.getMessage().contains("!"));

logger.log(Level.SEVERE,"server warning!!!!!");
logger.log(Level.WARNING,"warning");
logger.log(Level.INFO,"info!!");
logger.log(Level.CONFIG,"config!!!");
System.out.println(logger.getParent().getClass());

// Map<String,String>map=new HashMap<>();
// map.put("number",null);
// System.out.println(map); 区别:map的valuie值可以为空 properties值不能为空

Properties properties=new Properties();
properties.load(new FileInputStream("test.properties"));
// properties.put("number",null);
properties.store(System.out,"Look here");
System.getProperties().forEach((k,v)->System.out.println(k+":"+v));










} catch (IOException e) {
e.printStackTrace();
}
}
}
29 changes: 29 additions & 0 deletions mybatis/src/com/test/MybatisUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.test;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class MybatisUtil {
//在类加载时就进行创建
private static SqlSessionFactory sqlSessionFactory;
static {
try {
sqlSessionFactory = new SqlSessionFactoryBuilder().build(new FileInputStream("mybatis-config.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

/**
* 获取一个新的会话
* @param autoCommit 是否开启自动提交(跟JDBC是一样的,如果不自动提交,则会变成事务操作)
* @return SqlSession对象
*/
public static SqlSession getSession(boolean autoCommit){
return sqlSessionFactory.openSession(autoCommit);
}
}
15 changes: 15 additions & 0 deletions mybatis/src/com/test/entity/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.test.entity;

import lombok.Data;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)
public class Student {

String name;
int sid;



}
11 changes: 11 additions & 0 deletions mybatis/src/com/test/log/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.test.log;


import lombok.extern.java.Log;
@Log(topic = "小王八")
public class Main {
public static void main(String[] args) {
System.out.println(log.getName());
log.info("Look here");
}
}
13 changes: 13 additions & 0 deletions mybatis/src/com/test/mapper/TestMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.test.mapper;

import com.test.entity.Student;
import org.apache.ibatis.annotations.*;

public interface TestMapper {
@Insert("insert into student values(#{name},#{sid})")
String addStudent(Student student);
@Delete("delete from student where sid=#{sid}")
void deleteStudent(int sid);
@Select("select *from student where sid=#{sid}")
String getStudent(int sid);
}
42 changes: 42 additions & 0 deletions mybatis/src/com/test/test/MainTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.test.test;

import com.test.entity.Student;
import com.test.mapper.TestMapper;
import lombok.extern.java.Log;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.LogManager;


@Log
public class MainTest {

private SqlSessionFactory sqlSessionFactory;
@Before
public void before(){
try {
sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(new FileInputStream("mybatis-config.xml"));
LogManager manager = LogManager.getLogManager();
manager.readConfiguration(new FileInputStream("test.properties"));
} catch (IOException e) {
e.printStackTrace();
}
}

@Test
public void test(){
try(SqlSession sqlSession = sqlSessionFactory.openSession(true)){
TestMapper mapper = sqlSession.getMapper(TestMapper.class);
log.info(mapper.getStudent(2).toString());
}
}
}
15 changes: 15 additions & 0 deletions mybatis/src/com/test/test/TestFormatter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.test.test;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;

public class TestFormatter extends Formatter {
@Override
public String format(LogRecord record) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String time = format.format(new Date(record.getMillis())); //格式化日志时间
return time + " : " + record.getMessage() + "\n";
}
}
30 changes: 30 additions & 0 deletions mybatis/test.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
八月 15, 2022 7:04:02 下午 com.test.Main main
严重: server warning!!!!!
八月 15, 2022 7:04:02 下午 com.test.Main main
警告: warning
八月 15, 2022 7:04:21 下午 com.test.Main main
严重: server warning!!!!!
八月 15, 2022 7:04:21 下午 com.test.Main main
警告: warning
八月 15, 2022 7:12:06 下午 com.test.Main main
警告: warning
八月 15, 2022 7:22:20 下午 com.test.Main main
警告: warning
八月 15, 2022 7:22:37 下午 com.test.Main main
警告: warning
八月 15, 2022 7:23:19 下午 com.test.Main main
警告: warning
八月 15, 2022 7:29:38 下午 com.test.Main main
警告: warning
八月 15, 2022 7:29:54 下午 com.test.Main main
警告: warning
八月 15, 2022 7:30:20 下午 com.test.Main main
警告: warning
八月 15, 2022 7:33:22 下午 com.test.Main main
警告: warning
八月 15, 2022 7:33:57 下午 com.test.Main main
警告: warning
八月 15, 2022 7:38:42 下午 com.test.Main main
警告: warning
八月 15, 2022 7:42:55 下午 com.test.Main main
警告: warning
4 changes: 4 additions & 0 deletions mybatis/test.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
handlers= java.util.logging.ConsoleHandler
.level= ALL
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = com.test.TestFormatter