JDBC003

package day03;

import java.io.Serializable;

/*
 * 为了存放从数据库中查询到的记录的信息,我们可以设计一个对应的类
 * 该类的结构与要操作的数据库对应的表一致
 *
 */
public class User implements Serializable {//序列化
	private Integer id;//用户id
	private String userName;//用户名
	private String userPwd;//用户密码
	private double userSal;//员工薪资
	private Integer useAge;//用户年龄
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	public double getUserSal() {
		return userSal;
	}
	public void setUserSal(double userSal) {
		this.userSal = userSal;
	}
	public Integer getUseAge() {
		return useAge;
	}
	public void setUseAge(Integer useAge) {
		this.useAge = useAge;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		result = prime * result + ((useAge == null) ? 0 : useAge.hashCode());
		result = prime * result + ((userName == null) ? 0 : userName.hashCode());
		result = prime * result + ((userPwd == null) ? 0 : userPwd.hashCode());
		long temp;
		temp = Double.doubleToLongBits(userSal);
		result = prime * result + (int) (temp ^ (temp >>> 32));
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		User other = (User) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		if (useAge == null) {
			if (other.useAge != null)
				return false;
		} else if (!useAge.equals(other.useAge))
			return false;
		if (userName == null) {
			if (other.userName != null)
				return false;
		} else if (!userName.equals(other.userName))
			return false;
		if (userPwd == null) {
			if (other.userPwd != null)
				return false;
		} else if (!userPwd.equals(other.userPwd))
			return false;
		if (Double.doubleToLongBits(userSal) != Double.doubleToLongBits(other.userSal))
			return false;
		return true;
	}
	public User(Integer id, String userName, String userPwd, double userSal, Integer useAge) {
		super();
		this.id = id;
		this.userName = userName;
		this.userPwd = userPwd;
		this.userSal = userSal;
		this.useAge = useAge;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", userName=" + userName + ", userPwd=" + userPwd + ", userSal=" + userSal
				+ ", useAge=" + useAge + "]";
	}
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	
}

package day03;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import day02.DButil;

/*
 * DAO(Data Access Object):封装了数据访问逻辑的对象
 * DAO作为数据访问层,把业务层逻辑数据分隔开来,业务逻辑层需要数据就要跟DAO层要数据
 * 业务逻辑层要保存数据,就要DAO,让DAO去保存业务逻辑
 * 如果获取数据,如何保存数据,都是由DAO负责
 * @author 臻冉
 *
 */
public class UserDao {
	//用户注册
	public int insertUser(User user){
		Connection conn = null;
		PreparedStatement ps = null;
		int n=0;
		try {
			conn = DButil.getConnection();
			String sql = "insert into use values (null,?,?,?,?)";
			//对象中的数据插入到数据库中
			ps = conn.prepareStatement(sql);
			ps.setString(1, user.getUserName());
			ps.setString(2, user.getUserPwd());
			ps.setDouble(3, user.getUserSal());
			ps.setInt(4, user.getUseAge());
			n=ps.executeUpdate();
			return n;
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return 0;
	}
	
	//根据用户id删除用户数据
	public int deleteUserById(int id){
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			conn = DButil.getConnection();
			String sql = "delete from user where id=?";
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);
			int n = ps.executeUpdate();
			return n;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DButil.closeConnection(conn, null, ps);
		}
		return 0;
	}
	
	//用户登录成功并修改用户的密码
	public int updataUserData(User user,String newPwd){
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			conn = DButil.getConnection();
			String sql = "select user_name,user_password from user where user_name=? and user_password=?";
			ps = conn.prepareStatement(sql);
			ps.setString(1,user.getUserName());
			ps.setString(2, user.getUserPwd());
			rs = ps.executeQuery();
			if(rs.next()){
				System.out.println("登录成功");
				String sql2 = "update user set user_password=? where user_name=?";
				ps = conn.prepareStatement(sql2);
				ps.setString(1, newPwd);
				ps.setString(2, user.getUserName());
				int n = ps.executeUpdate();
				return n;
			} else {
				System.out.println("登录失败");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DButil.closeConnection(conn, rs, ps);
		}
		
		return 0;
	}
	
	
	//根据员工的编号查询出用户的部门名称
	public String findUserByempno(int empno){
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			conn = DButil.getConnection();
			String sql = "select d.dname from emp e join dept d on e.deptno = d.deptno where e.empno=?";
			ps = conn.prepareStatement(sql);
			ps.setInt(1, empno);
			rs = ps.executeQuery();
			if(rs.next()){
				String name = rs.getString("d.dname");
				return name;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DButil.closeConnection(conn, rs, ps);
		}
		
		return null;
	}
	
	
	//查询所有用户的数据<List>
	public List<User> findUserAll(){
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			List<User> list = new ArrayList<User>();
			conn = DButil.getConnection();
			String sql = "select * from user";
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()){
				User user = new User();//封装后的
				user.setId(rs.getInt("id"));
				user.setUserName(rs.getString("user_name"));
				user.setUserPwd(rs.getString("user_password"));
				user.setUseAge(rs.getInt("user_age"));
				user.setUserSal(rs.getDouble("user_sal"));
				list.add(user);
			}
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DButil.closeConnection(conn, rs, ps);
		}
		return null;
	}
	
	//查询所有用户的数据<List<Map<String,Object>>
	
	
	
	
	
	//查询所有用户的输入Map<String,Object>
	public Map<String,Object> findUserAll3(){
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			conn = DButil.getConnection();
			String sql = "select * from user";
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			Map<String,Object>  map = new HashMap<String,Object>();
			List<User> list = new ArrayList<User>();
			while(rs.next()){
				User user = new User();
				user.setId(rs.getInt("id"));
				user.setUserPwd(rs.getString("user_password"));
				user.setUseAge(rs.getInt("user_age"));
				user.setUserName(rs.getString("user_name"));
			    user.setUserSal(rs.getDouble("user_sal"));
			    list.add(user);
			}
			map.put("list", list);
			   return map;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DButil.closeConnection(conn, rs, ps);
		}
		return null;
		
	}
	
}

package day03;

import java.util.List;

public interface UserDao2 {
	/*用户注册*/
	public void insertUser(User use);
	
	/*根据id删除用户数据*/
	int deleteUserById(int id);
	
	/*根据用户名修改用户密码*/
	int updateUserById(int id);
	
	/*根据用于id查询用户数据*/
	User findUserAll(int id);
	
	/*查询所有用户的数据*/
	List<User> findUserAll();
}

package day03;

import java.util.List;

public class UserDao2impl implements UserDao2 {

	@Override
	public void insertUser(User use) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public int deleteUserById(int id) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int updateUserById(int id) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public User findUserAll(int id) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<User> findUserAll() {
		// TODO Auto-generated method stub
		return null;
	}

}

package day03;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import day02.DButil;
import day02.DButilDemo;

/*
 * 根据id查询用户数据并封装在对象中
 */
public class UserDemo {
	public static void main(String[] args) {
		UserDemo userDemo = new UserDemo();
		User user=userDemo.findUserById(1);
		System.out.println(user);
	}
	public User findUserById(int id){
		//业务
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			//1.连接数据库
			conn=DButil.getConnection();
			
			//2.根据id查询用户数据
			String sql = "select * from user where id=?";
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);
			rs = ps.executeQuery();
			
			//3.将查询出来的数据封装在User对象中
			User user = new User();
			if(rs.next()){
				int userId = rs.getInt("id");
				String name = rs.getString("user_name");
				String pwd = rs.getString("user_password");
				double sal = rs.getDouble("user_id");
				int age = rs.getInt("user_age");
				//查询 处理的数据封装在User对象中
				user = new User();
				user.setId(id);
				user.setUserName(name);
				user.setUserSal(sal);
				user.setUserPwd(pwd);
				user.setUseAge(age);
			}
			return user;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}

DAO

drivername=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/store_ykt
username=root
userpwd=123456
maxActive=1
maxWait=7000
内容概要:本文为《科技类企业品牌传播白皮书》,系统阐述了新闻媒体发稿、自媒体博主种草与短视频矩阵覆盖三大核心传播策略,并结合“传声港”平台的AI工具与资源整合能力,提出适配科技企业的品牌传播解决方案。文章深入分析科技企业传播的特殊性,包括受众圈层化、技术复杂性与传播通俗性的矛盾、产品生命周期影响及2024-2025年传播新趋势,强调从“技术输出”向“价值引领”的战略升级。针对三种传播方式,分别从适用场景、操作流程、效果评估、成本效益、风险防控等方面提供详尽指南,并通过平台AI能力实现资源智能匹配、内容精准投放与全链路效果追踪,最终构建“信任—种草—曝光”三位一体的传播闭环。; 适合人群:科技类企业品牌与市场负责人、公关传播从业者、数字营销管理者及初创科技公司创始人;具备一定品牌传播基础,关注效果可量化与AI工具赋能的专业人士。; 使用场景及目标:①制定科技产品全生命周期的品牌传播策略;②优化媒体发稿、KOL合作与短视频运营的资源配置与ROI;③借助AI平台实现传播内容的精准触达、效果监测与风险控制;④提升品牌在技术可信度、用户信任与市场影响力方面的综合竞争力。; 阅读建议:建议结合传声港平台的实际工具模块(如AI选媒、达人匹配、数据驾驶舱)进行对照阅读,重点关注各阶段的标准化流程与数据指标基准,将理论策略与平台实操深度融合,推动品牌传播从经验驱动转向数据与工具双驱动。
【3D应力敏感度分析拓扑优化】【基于p-范数全局应力衡量的3D敏感度分析】基于伴随方法的有限元分析和p-范数应力敏感度分析(Matlab代码实现)内容概要:本文档围绕“基于p-范数全局应力衡量的3D应力敏感度分析”展开,介绍了一种结合伴随方法与有限元分析的拓扑优化技术,重点实现了3D结构在应力约束下的敏感度分析。文中详细阐述了p-范数应力聚合方法的理论基础及其在避免局部应力过高的优势,并通过Matlab代码实现完整的数值仿真流程,涵盖有限元建模、灵敏度计算、优化迭代等关键环节,适用于复杂三维结构的轻量化与高强度设计。; 适合人群:具备有限元分析基础、拓扑优化背景及Matlab编程能力的研究生、科研人员或从事结构设计的工程技术人员,尤其适合致力于力学仿真与优化算法开发的专业人士; 使用场景及目标:①应用于航空航天、机械制造、土木工程等领域中对结构强度和重量有高要求的设计优化;②帮助读者深入理解伴随法在应力约束优化中的应用,掌握p-范数法处理全局应力约束的技术细节;③为科研复现、论文写作及工程项目提供可运行的Matlab代码参考与算法验证平台; 阅读建议:建议读者结合文中提到的优化算法原理与Matlab代码同步调试,重点关注敏感度推导与有限元实现的衔接部分,同时推荐使用提供的网盘资源获取完整代码与测试案例,以提升学习效率与实践效果。
源码来自:https://pan.quark.cn/s/e1bc39762118 SmartControlAndroidMQTT 点个Star吧~ 如果不会用下载或是下载慢的,可以在到酷安下载:https://www.coolapk.com/apk/com.zyc.zcontrol 本文档还在编写中!!! 被控设备: 按键伴侣ButtonMate 直接控制墙壁开关,在不修改墙壁开关的前提下实现智能开关的效果 zTC1_a1 斐讯排插TC1重新开发固件,仅支持a1版本. zDC1 斐讯排插DC1重新开发固件. zA1 斐讯空气净化器悟净A1重新开发固件. zM1 斐讯空气检测仪悟空M1重新开发固件. zS7 斐讯体重秤S7重新开发固件.(仅支持体重,不支持体脂) zClock时钟 基于esp8266的数码管时钟 zMOPS插座 基于MOPS插座开发固件 RGBW灯 基于ESP8266的rgbw灯泡 zClock点阵时钟 基于ESP8266的点阵时钟 使用说明 此app于设备通信通过udp广播或mqtt服务器通信.udp广播为在整个局域网(255.255.255.255)的10181和10182端口通信.由于udp广播的特性,udp局域网通信不稳定,建议有条件的还是使用mqtt服务器来通信. app设置 在侧边栏点击设置,进入设置页面.可设置mqtt服务器.(此处总是通过UDP连接选项无效!) 设备控制页面 (每总设备页面不同) 界面下方的服务器已连接、服务器已断开 是指app与mqtt服务器连接状态显示.与设备连接状态无关. 右上角,云图标为与设备同步mqtt服务器配置.由于可以自定义mqtt服务器,所以除了需要将手机连入mqtt服务器外,还需要将被控设备连入...
### DBeaver 中 JDBC 连接 Zenith 数据库的 URL 模板 在 DBeaver 中,通过 JDBC 接口连接 Zenith 数据库时,需要正确配置 JDBC URL 模板。以下是详细的说明和示例: #### 1. 标准 JDBC URL 模板 Zenith 数据库的标准 JDBC URL 模板通常遵循以下格式: ```plaintext jdbc:zenith:@{host}:{port}/{database} ``` 其中: - `{host}` 是数据库服务器的主机名或 IP 地址。 - `{port}` 是数据库服务监听的端口号。 - `{database}` 是要连接的具体数据库名称[^2]。 例如,如果 Zenith 数据库运行在 `192.168.56.102` 上,监听端口为 `1888`,并且目标数据库名为 `test_db`,则完整的 JDBC URL 应为: ```plaintext jdbc:zenith:@192.168.56.102:1888/test_db ``` --- #### 2. 配置驱动程序 为了成功建立连接,需确保已下载并配置了适用于 Zenith 数据库的 JDBC 驱动程序。根据引用内容,驱动类名称为: ```plaintext com.huawei.gauss.jdbc.ZenithDriver ``` 同时,驱动文件路径应指向 `.jar` 文件的实际位置。例如: ```plaintext /gaussdb/GaussDB_100_1.0.1-REDHAT7.5-X86/GaussDB_100_1.0.1-CLIENT-JDBC/com.huawei.gauss.jdbc.ZenithDriver-GaussDB_100_1.0.1.SPC2.B003.jar ``` 在 DBeaver 中添加驱动程序时,需执行以下操作: 1. 打开 **Database** -> **New Database Connection**。 2. 选择 **Generic** 类型,并点击 **Next**。 3. 在 **Driver Settings** 下,点击 **Edit Driver**。 4. 添加上述 `.jar` 文件作为驱动程序,并设置驱动类名为 `com.huawei.gauss.jdbc.ZenithDriver`[^2]。 --- #### 3. 测试连接 完成上述配置后,可以填写以下信息以测试连接: - **Host**: 数据库服务器地址(如 `192.168.56.102`)。 - **Port**: 数据库服务端口(如 `1888`)。 - **Database Name**: 要连接的目标数据库名称(如 `test_db`)。 - **Username & Password**: 登录凭证(如用户名 `steven` 和密码 `modb123$`)。 最终的 JDBC URL 将自动填充为类似以下的形式: ```plaintext jdbc:zenith:@192.168.56.102:1888/test_db ``` --- #### 4. 动态生成 JDBC URL 的代码示例 以下是一个 Python 函数,用于动态生成 Zenith 数据库的 JDBC URL: ```python def generate_zenith_jdbc_url(host, port, database): return f"jdbc:zenith:@{host}:{port}/{database}" # 示例调用 url = generate_zenith_jdbc_url("192.168.56.102", "1888", "test_db") print(url) ``` --- ### 注意事项 - 确保 JDBC 驱动版本与数据库兼容。 - 如果使用 SSL 或其他安全机制,可能需要在 URL 后附加额外参数。例如: ```plaintext jdbc:zenith:@192.168.56.102:1888/test_db?useSSL=true ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值