收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
package david.apache.model;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Visitor {
private int id;
private String name;
private String email;
private int status;
private Date createTime;
public Visitor() {
// TODO Auto-generated constructor stub
setCreateTime(new Date());
}
public Visitor(String name, String email) {
this.setName(name);
this.setEmail(email);
this.setStatus(1);
this.setCreateTime(new Date());
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return String.format("{Id: %d, Name: %s, Email: %s, CreateTime: %s}", getId(), getName(), getEmail(),
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(getCreateTime()));
}
}
首先我们先新建一个获取Connection的方法:
private static Connection getConnection() {
Connection conn = null;
try {
Class.forName(CONNECTION_DRIVER_STR);
conn = DriverManager.getConnection(CONNECTION_STR, "root", "123456");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
新建方法(对于里面的自增字段,我们可以采用变通的方法来插入,使用select last_insert_id()方法)
/*
* 新增Visitor, ScalarHandler的demo
*/
public static void insertVisitor(Visitor visitor) {
Connection conn = getConnection();
QueryRunner qr = new QueryRunner();
String sql = "insert into visitor (Name, Email, Status, CreateTime) values (?, ?, ?, ?)";
try {
int count = qr.update(conn, sql, visitor.getName(), visitor.getEmail(), 1, new Date());
BigInteger newId = (BigInteger) qr.query(conn, "select last_insert_id()", new ScalarHandler<BigInteger>(1));
visitor.setId(Integer.valueOf(String.valueOf(newId)));
System.out.println("新增" + count + "条数据=>Id:" + newId);
} catch (SQLException e) {
e.printStackTrace();
}
}
大家可以看到操作的步骤其实很简单,也是写SQL可以了,对于自增字段我们通过select last_insert_id()的方法利用ScalarHandler实体类来返回达到变通效果。
删除方法
public static void deleteVisitor(int id) {
Connection conn = getConnection();
QueryRunner qr = new QueryRunner();
String sql = "delete from visitor where status>0 and id=?";
try {
int count = qr.update(conn, sql, id);
System.out.println("删除" + count + "条数据。");
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
查询方法
public static Visitor retrieveVisitor(int id) {
Connection conn = getConnection();
Visitor visitor = null;
QueryRunner qr = new QueryRunner();
String sql = "select * from visitor where status>0 and id=?";
try {
visitor = (Visitor) qr.query(conn, sql, new BeanHandler<Visitor>(Visitor.class), id);
System.out.println(visitor);
return visitor;
} catch (Exception e) {
e.printStackTrace();
}
return visitor;
}
更新操作
public static void updateVisitor(int id) {
Visitor visitor = retrieveVisitor(id);
System.out.println("更新前:" + visitor);
Connection conn = getConnection();
String updateFieldStr = visitor.getName();
QueryRunner qr = new QueryRunner();
String sql = "update visitor set Name = ?, Email = ?, Status = ?, CreateTime = ? where status>0 and Id = ?";
if (updateFieldStr.contains("updated")) {
updateFieldStr = updateFieldStr.substring(0, updateFieldStr.indexOf("updated"));
} else {
updateFieldStr = updateFieldStr + "updated";
}
visitor.setName(updateFieldStr);
try {
int count = qr.update(conn, sql, new Object[] { visitor.getName(), visitor.getName(), visitor.getStatus(),
visitor.getCreateTime(), visitor.getId() });
System.out.println("更新了" + count + "条数据");
System.out.println("更新后:" + visitor);
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
BeanListHandler方法
public static void getVisitorList() {
Connection conn = getConnection();
QueryRunner qr = new QueryRunner();
String sql = "select * from visitor where status>0";
try {
List<Visitor> ls = qr.query(conn, sql, new BeanListHandler<Visitor>(Visitor.class));
for (Visitor visitor : ls) {
![img](https://img-blog.csdnimg.cn/img_convert/b050a032a0e3acf54ba294b33d148835.png)
![img](https://img-blog.csdnimg.cn/img_convert/a721cd3ed099ad0c65ba9bd455ba564a.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**
验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**