使用JDBC进行数据库连接以及前后端的交互步骤
- 在mysql数据库中建立一个名为JDBC的数据库,在该数据库下建立一个名为t_user的表单,设置username和pwd两个字段,并加入一点数据。
- 导入JDBC驱动包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
- 在dao包中创建一个UserDao类,在里面写上一个initJDBC方法。
public class UserDao
{
public void initJDBC()
{
}
}
- 在initJDBC()方法中进行数据库的连接
public void initJDBC()
{
Class.forName(“com.mysql.jdbc.Driver”);
String url="jdbc:mysql://127.0.0.1:3306/JDBC";
String dbusername="root";
String dbpwd="root";
Connection conn = DriverManager.getConnection(url,dbusername,dbpwd);
String sql = “select * from t_user”;
PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
while(resultSet.next())
{
String user = resultSet.getString(“username”);
String pwd = resultSet.getString(“pwd”);
System.out.println(user + “==” + pwd);
}
}
- 为了更加简洁方便连接数据库,所以进行代码的整改如下:
public Connection initJDBC()
{
Connection conn =null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/JDBC?serverTimezone=UTC";
String dbusername ="root";
String dbpwd = " root ";
conn = DriverManager.getConnection(url,dbusername,dbpwd);
} catch (Exception e)
{
e.printStackTrace();
}
return conn;
}
public User getUserByName(String username) throws Exception
{
Connection conn = initJDBC();
User user = null;
String sql ="select * from t_user where username =?";
PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1,username);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next())
{
user = new User();
user.setName(resultSet.getString("username"));
user.setPwd(resultSet.getString("pwd"));
}
return user;
}
- 在vo包里创建User类,存放用户的username和userpwd属性
- 在service包里创建一个UserService接口,写上一个方法。利用service包下的impl包中的UserServiceImpl类去实现UserService接口中的方法,并用@Service注解去声明它是一个服务类,这样在controller类中才可以用@Autowired注入接口UserService。
- 在controller包中创建一个LoginController类,通过@Autowired注解直接注入UserService,再在login方法中写上事物的处理。
@Autowired
UserService userService;
@RequestMapping("/login")
public String login(@ModelAttribute() User user)
{
if(user == null || null == user.getName())
{
return "/ login";
}
User dbUser = userService.getUserInfo(user.getName());
if(user.getName().equals(dbUser.getName()) && user.getPwd().equals(dbUser.getPwd()))
{
return "/ welcome";
}
return " /login";
}
- 运行,到浏览器调用,完成。