发表于: 2019-04-09 22:05:38
2 575
1.maven聚合工程集成 spring springmvc hibernate实现登录注册
简单的实现一下,拦截器还有一些逻辑没弄,只是练习,,没必要考虑那么多
Controller
@Controller
public class UserController {
@Autowired
UserService userService;
@RequestMapping("/p/show")
public String show() {
return "register";
}
@RequestMapping("/u/register")
public String insert(User user) {
System.out.println(user);
if (user.getPassword() != null
&& user.getUserName() != null) {
Long state = userService.saveUser(user);
System.out.println(state+"插入");
return "login";
}
return "register";
}
@RequestMapping("/u/login")
public String select(HttpServletRequest request) {
String name = request.getParameter("name");
String password = request.getParameter("password");
if (name != null
&& name.length() > 0
&& password != null
&& password.length() > 0) {
System.out.println(name+password+"查找");
Long state = userService.get(name, password);
if (state != 0) {
return "success";
} else {
return "login";
}
}else {
return "login";
}
}}
注册页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册</title>
</head>
<body>
<form action="/u/register" name="user" method="post">
请输入用户名--:<input type="text" name="userName" /><br>
请你输入密码--:<input type="password" name="password" /><br>
<input type="submit" value="Register"/>
</form>
</body>
</html>
登录页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<form action="/u/login" name="user" method="post">
用户名:<input type="text" name="name">
密码:<input type="text" name="password" >
<input type="submit" value="登录">
</form>
</body>
</html>
登录跳转页
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
你来了!
</body>
</html>
改了昨天的dao的实现
public Long getOne(String name, String password) {
Query query = getSession().createQuery("from User where userName=? and password=?");
query.setParameter(0,name);
query.setParameter(1,password);
User user =(User) query.uniqueResult();
System.out.println(user+"============");
return user.getId();
}
2.maven的一个坑,,,,
如果父项目pom中使用的是:
<dependencies>
....
</dependencies>方式,
则子项目pom会自动使用pom中的jar包。
如果父项目pom使用
<dependencyManagement>
<dependencies>
....
</dependencies>
</dependencyManagement>方式,
则子项目pom不会自动使用父pom中的jar包,如果需要使用,就要给出groupId和artifactId,无需给出version
3.hibernate(简单的)增删改查
增:
先创建session然后调用save或者,persist方法,这两个方法不同的是:
save : 在事务里执行到save,会向数据库插一条数据,如果事务里异常,会回滚,删除数据库中插入的数据。
persist:在事务里执行到persist,不会向数据库插数据,事务commit了才会插入数据。
public static void main(String[] args) {
ApplicationContext ap = new ClassPathXmlApplicationContext("applicationContext.xml");
SessionFactory sessionFactory = (SessionFactory) ap.getBean("sessionFactory");
Session session = sessionFactory.openSession();
Transaction tran = session.beginTransaction();
User user = new User();
user.setPassword("333");
user.setUserName("333");
session.save(user);
tran.commit();
//关闭事物
session.close();
}
删:
public static void main(String[] args) {
ApplicationContext ap = new ClassPathXmlApplicationContext("applicationContext.xml");
SessionFactory sessionFactory = (SessionFactory) ap.getBean("sessionFactory");
Session session = sessionFactory.openSession();
Transaction tran = session.beginTransaction();
//先获取id为1的数据
User user = (User) session.get(User.class, 1L);
System.out.println(user);
//然后删除
session.delete(user);
tran.commit();
//关闭事物
session.close();
}
}
改:
public static void main(String[] args) {
ApplicationContext ap = new ClassPathXmlApplicationContext("applicationContext.xml");
SessionFactory sessionFactory = (SessionFactory) ap.getBean("sessionFactory");
Session session = sessionFactory.openSession();
Transaction tran = session.beginTransaction();
//和delete类似,都是先查再删
User user = (User) session.get(User.class,3L);
user.setUserName("qe");
user.setPassword("qw");
session.update(user);
tran.commit();
//关闭事物
session.close();
}
查:
根据其他条件查一条
public static void main(String[] args) {
ApplicationContext ap = new ClassPathXmlApplicationContext("applicationContext.xml");
SessionFactory sessionFactory = (SessionFactory) ap.getBean("sessionFactory");
Session session = sessionFactory.openSession();
Transaction tran = session.beginTransaction();
Query query = session.createQuery("from User where userName=? and password=?");
query.setParameter(0,"qe");
query.setParameter(1,"qw");
User user =(User) query.uniqueResult();
System.out.println(user);
tran.commit();
//关闭事物
session.close();
查所有
public static void main(String[] args) {
ApplicationContext ap = new ClassPathXmlApplicationContext("applicationContext.xml");
SessionFactory sessionFactory = (SessionFactory) ap.getBean("sessionFactory");
Session session = sessionFactory.openSession();
Transaction tran = session.beginTransaction();
Query query = session.createQuery("from User");
List<User> list = query.list();
for (User user:list) {
System.out.println(user);
}
tran.commit();
//关闭事物
session.close();
}
明天计划的事
1.springcloud学一下
2.缓存和加密解密再看一下.
3.hibernate再深入一下
遇到的问题
idea配置pom.xml的时候总配不好,子模块删除依赖,父模块删除依赖,但没有反应,后来随便在Pom.xml里加几个字,然后再删掉,Idea就检测到了有改动,就会自动更新....卡了好久
收获
以上
评论