Исходный адрес Github: https://github.com/mybatis/mybatis-3
Что такое Мибатис
MyBatis — отличныйСтруктура сохраняемого уровня, который поддерживает пользовательский SQL, хранимые процедуры и расширенное сопоставление. MyBatis избегает почти всего кода JDBC и ручной настройки параметров и получения наборов результатов, он может использовать простыеXMLилианнотацияЧтобы настроить и сопоставить информацию SQL, сопоставьте интерфейсы и Java POJO (обычные старые объекты Java, обычные объекты Java) с записями в базе данных.
Происхождение Мибатиса
MyBatis — это проект с открытым исходным кодом iBatis от Apache.
В 2010 году этот проект был перенесен в код Google компанией Apache Software Foundation и переименован в MyBatis.
Мигрировал на Github в ноябре 2013 года.
что такое ОРМ
Объектно-реляционное сопоставление (OBJECT/RELATIONALMAPPING, ORM для краткости)метод разработки программного обеспеченияпроизводится путем разработки. Используется для сопоставления объектов, представленных объектной моделью, со структурой базы данных реляционной модели на основе SQL. Таким образом, когда мы специально работаем с объектом-сущностью, нам больше не нужно иметь дело со сложными операторами SQL, а просто оперировать атрибутами и методами объекта-сущности. Технология ORM обеспечивает мост между объектами и отношениями, и данные объектного типа на переднем плане и реляционные данные в базе данных преобразуются друг в друга через этот мост.
private int id; private String username; private Date birthday; private String sex; private String address; // getter\setter方法 }
Реализация спроса
запросить пользователя
файл карты
<!-- 根据id获取用户信息 --> <select id="findUserById" parameterType="int" resultType="com.kkb.mybatis.po.User"> select * from user where id = #{id} </select>
<!-- 根据名称模糊查询用户列表 --> <select id="findUserByUsername" parameterType="java.lang.String" resultType="com.kkb.mybatis.po.User"> select * from user where username like '%${value}%' </select>
public interface UserDao { public User findUserById(int id) throws Exception; public List<User> findUsersByName(String name) throws Exception; }
жизненный цикл (сфера применения)
sqlsession: уровень метода
sqlsessionFactory: глобальная область (уровень приложения)
sqlsessionFactoryBuilder: уровень метода
public class UserDaoImpl implements UserDao { //注入SqlSessionFactory public UserDaoImpl(SqlSessionFactory sqlSessionFactory){ this. sqlSessionFactory = sqlSessionFactory; }
private SqlSessionFactory sqlSessionFactory;
@Override public User findUserById(int id) throws Exception { SqlSession session = sqlSessionFactory.openSession(); User user = null; try { //通过sqlsession调用selectOne方法获取一条结果集 //参数1:指定定义的statement的id,参数2:指定向statement中传递的参数 user = session.selectOne("test.findUserById", id); System.out.println(user); } finally{ session.close(); } return user; }
public interface UserDao { public void insertUser(User user) throws Exception; }
public class UserDaoImpl implements UserDao { //注入SqlSessionFactory public UserDaoImpl(SqlSessionFactory sqlSessionFactory){ this. sqlSessionFactory = sqlSessionFactory; }
Добавьте тег selectKey, чтобы вернуть первичный ключ.
keyProperty: указывает возвращаемый первичный ключ, свойство которого хранится в pojo.
order: порядок выполнения sql в теге selectKey соответствует оператору вставки. Из-за принципа самоинкремента mysql первичный ключ генерируется после выполнения оператора вставки, поэтому порядок выполнения selectKey здесь следующий.
resultType: тип JAVA, соответствующий возвращаемому первичному ключу.
1608976: это функция mysql, которая возвращает значение идентификатора новой записи в столбце auto_increment.
Все статьи в официальном аккаунте написаны авторами блогов и будут постоянно обновляться. Если вы хотите стать свидетелем или расти вместе с блоггерами, добро пожаловать на внимание!
Добро пожаловать, чтобы отсканировать код, чтобы следовать! ! !