b) Create mybatis-config.xml file in src/main/resources folder
Step#4: Create an interface UserMapper.java in src/main/java folder in com.sivalabs.mybatisdemo.mappers package.
package com.sivalabs.mybatisdemo.mappers;
import java.util.List;
import com.sivalabs.mybatisdemo.domain.User;
public interface UserMapper
{
public void insertUser(User user);
public User getUserById(Integer userId);
public List getAllUsers();
public void updateUser(User user);
public void deleteUser(Integer userId);
}
Step#5: Create UserMapper.xml file in src/main/resources folder in com.sivalabs.mybatisdemo.mappers package.
INSERT INTO USER(email_id, password, first_name, last_name)
VALUES(#{emailId}, #{password}, #{firstName}, #{lastName})
UPDATE USER
SET
PASSWORD= #{password},
FIRST_NAME = #{firstName},
LAST_NAME = #{lastName}
WHERE USER_ID = #{userId}
DELETE FROM USER WHERE USER_ID = #{userId}
Step#6: Create MyBatisUtil.java to instantiate SqlSessionFactory.
Step#8: Create a JUnit Test class to test UserService methods.
package com.sivalabs.mybatisdemo;
import java.util.List;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import com.sivalabs.mybatisdemo.domain.User;
import com.sivalabs.mybatisdemo.service.UserService;
public class UserServiceTest
{
private static UserService userService;
@BeforeClass
public static void setup()
{
userService = new UserService();
}
@AfterClass
public static void teardown()
{
userService = null;
}
@Test
public void testGetUserById()
{
User user = userService.getUserById(1);
Assert.assertNotNull(user);
System.out.println(user);
}
@Test
public void testGetAllUsers()
{
List users = userService.getAllUsers();
Assert.assertNotNull(users);
for (User user : users)
{
System.out.println(user);
}
}
@Test
public void testInsertUser()
{
User user = new User();
user.setEmailId('test_email_'+System.currentTimeMillis()+'@gmail.com');
user.setPassword('secret');
user.setFirstName('TestFirstName');
user.setLastName('TestLastName');
userService.insertUser(user);
Assert.assertTrue(user.getUserId() != 0);
User createdUser = userService.getUserById(user.getUserId());
Assert.assertNotNull(createdUser);
Assert.assertEquals(user.getEmailId(), createdUser.getEmailId());
Assert.assertEquals(user.getPassword(), createdUser.getPassword());
Assert.assertEquals(user.getFirstName(), createdUser.getFirstName());
Assert.assertEquals(user.getLastName(), createdUser.getLastName());
}
@Test
public void testUpdateUser()
{
long timestamp = System.currentTimeMillis();
User user = userService.getUserById(2);
user.setFirstName('TestFirstName'+timestamp);
user.setLastName('TestLastName'+timestamp);
userService.updateUser(user);
User updatedUser = userService.getUserById(2);
Assert.assertEquals(user.getFirstName(), updatedUser.getFirstName());
Assert.assertEquals(user.getLastName(), updatedUser.getLastName());
}
@Test
public void testDeleteUser()
{
User user = userService.getUserById(4);
userService.deleteUser(user.getUserId());
User deletedUser = userService.getUserById(4);
Assert.assertNull(deletedUser);
}
}
Now, I will explain how to perform CRUD operations using MyBatis Annotation support without need of Queries configuration in XML mapper files.
Step#1: Create a table BLOG and a java domain Object Blog.
CREATE TABLE blog (
blog_id int(10) unsigned NOT NULL auto_increment,
blog_name varchar(45) NOT NULL,
created_on datetime NOT NULL,
PRIMARY KEY (blog_id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
package com.sivalabs.mybatisdemo.domain;
import java.util.Date;
public class Blog {
private Integer blogId;
private String blogName;
private Date createdOn;
@Override
public String toString() {
return 'Blog [blogId=' + blogId + ', blogName=' + blogName
+ ', createdOn=' + createdOn + ']';
}
//Seeters and getters
}
Step#2: Create UserMapper.java interface with SQL queries in Annotations.
package com.sivalabs.mybatisdemo.mappers;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.sivalabs.mybatisdemo.domain.Blog;
public interface BlogMapper
{
@Insert('INSERT INTO BLOG(BLOG_NAME, CREATED_ON) VALUES(#{blogName}, #{createdOn})')
@Options(useGeneratedKeys=true, keyProperty='blogId')
public void insertBlog(Blog blog);
@Select('SELECT BLOG_ID AS blogId, BLOG_NAME as blogName, CREATED_ON as createdOn FROM BLOG WHERE BLOG_ID=#{blogId}')
public Blog getBlogById(Integer blogId);
@Select('SELECT * FROM BLOG ')
@Results({
@Result(id=true, property='blogId', column='BLOG_ID'),
@Result(property='blogName', column='BLOG_NAME'),
@Result(property='createdOn', column='CREATED_ON')
})
public List getAllBlogs();
@Update('UPDATE BLOG SET BLOG_NAME=#{blogName}, CREATED_ON=#{createdOn} WHERE BLOG_ID=#{blogId}')
public void updateBlog(Blog blog);
@Delete('DELETE FROM BLOG WHERE BLOG_ID=#{blogId}')
public void deleteBlog(Integer blogId);
}
Step#3: Configure BlogMapper in mybatis-config.xml
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI
TH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作
在 Service Pack 4 (SP 4), 是运行 Microsoft Windows Server 2003、 Microsoft Windows Storage Server 2003 或 Microsoft Windows 2000 服务器上您尝试安装 Microsoft SQL Server 2000 通过卷许可协议 (VLA) 媒体。 这样做, 收到以下错误信息CD KEY的 SQ
OS 7 has a new method that allows you to draw a view hierarchy into the current graphics context. This can be used to get an UIImage very fast.
I implemented a category method on UIView to get the vi
方法一:
在my.ini的[mysqld]字段加入:
skip-grant-tables
重启mysql服务,这时的mysql不需要密码即可登录数据库
然后进入mysql
mysql>use mysql;
mysql>更新 user set password=password('新密码') WHERE User='root';
mysq
背景
2014年11月12日,ASP.NET之父、微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR、JIT编译器、垃圾收集器(GC)和核心