Android studio 简易的登录界面
1、数据库连接
(1)数据库创建
(2)JDBCUtils的创建
2、Dao类的创建
(1)实体类的快速创建
(2)sql语句的应用
3、界面设计
这是我们实训的一部分,拿出来放到网上,请各位大佬给点建议
1、数据库连接
数据库连接教程
2、先建个util的包,放JDBCUtiles
public class JDBCUtils {
//加载JDBC
static{
try{
Class.forName("com.mysql.jdbc.Driver");
Log.d("MainActivity", "加载JDBC驱动成功!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
Log.d("MainActivity", "加载JDBC驱动失败!");
}
}
//创建连接对象
public static Connection getConn(){
Connection conn = null;
try{
conn= DriverManager.getConnection("jdbc:mysql://自己的ip地址:3306/数据库名字","用户名","用户密码");
Log.d("MainActivity", "创建连接成功!");
}catch (Exception e){
e.printStackTrace();
Log.d("MainActivity", "创建连接失败!");
}
return conn;
}
//断开连接
public static void close(Connection conn){
try {
conn.close();
Log.d("MainActivity", "关闭连接成功!");
} catch (SQLException throwables) {
throwables.printStackTrace();
Log.d("MainActivity", "关闭连接失败!");
}
}
}
数据库的创建
这里贴一下我的数据库创建命令行,
CREATE DATABASE /*!32312 IF NOT EXISTS*/`ordering_system` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `ordering_system`;
CREATE TABLE `user_info` (
`user_info_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键ID',
`user_id` int(11) NOT NULL COMMENT 'user_login表的自增ID',
`user_name` varchar(20) NOT NULL COMMENT '用户真实姓名',
`user_photo` varchar(100) DEFAULT NULL COMMENT '用户头像',
`id_card` varchar(20) NOT NULL COMMENT '身份证号',
`user_class` varchar(20) DEFAULT NULL COMMENT '班级',
`mobile_phone` varchar(20) NOT NULL COMMENT '手机号',
PRIMARY KEY (`user_info_id`),
KEY `user_info_ibfk_1` (`user_id`),
CONSTRAINT `user_info_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user_login` (`user_id`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='用户信息表';
/*Data for the table `user_info` */
insert into `user_info`(`user_info_id`,`user_id`,`user_name`,`user_photo`,`id_card`,`user_class`,`mobile_phone`) values
(1,1,'卯师傅',NULL,'4417**************',NULL,'10086'),
(2,2,'杰里',NULL,'4413**************',NULL,'16611001234');
/*Table structure for table `user_login` */
DROP TABLE IF EXISTS `user_login`;
CREATE TABLE `user_login` (
`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`user_num` varchar(20) NOT NULL COMMENT '用户账号',
`password` char(32) NOT NULL COMMENT '密码',
`user_iden` tinyint(4) NOT NULL COMMENT '用户身份:0管理员,1学生,2教职工',
`user_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '用户状态:0离线,1在线',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='用户登录表';
/*Data for the table `user_login` */
insert into `user_login`(`user_id`,`user_num`,`password`,`user_iden`,`user_status`) values
(1,'admin','123456',0,0),
(2,'a','123',1,0);
其中有连接了两张表的视图,可以不用管,后面的sql语句有两者的用法。
这里仅有登录的信息表,其他的触类旁通自己试试看。
2、Dao类的创建
依旧先建个包,这里的名字原本是只有dao的但是为了让你们知道是在那个包下面的,所以写了全称。
当然建dao还得建立实体类
同理
这里建立实体类,我们用到的只有User,其他的可以不用管
先把这些敲出来,这里是表里面的字段名,对着敲就行。
然后如图
做到这里就差不多了
然后是sql语句的创建
public class UserDao {
//判断身份方法
public int login_id(String user_num){
//sql查询语句
// String sql ="select user_iden from user_login where user_num =?"; //用mysql sql语句
String sql="select user_iden from num_user where user_num =?"; //用视图的 sql语句
Connection con = JDBCUtils.getConn();
try{
PreparedStatement ps =con.prepareStatement(sql);
ps.setString(1,user_num);
ResultSet rs = ps.executeQuery();
int iden