发表于: 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就检测到了有改动,就会自动更新....卡了好久

收获

以上


返回列表 返回列表
评论

    分享到