package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import tip.Tip;
import user.User;
public class NewsDaoImp implements NewsDao {
String driver="org.hsqldb.jdbc.JDBCDriver";
String uri="jdbc:hsqldb:hsql://localhost:9001/";
String user="SA";
String pass="";
public List<String[]> getAllTips(String boardName) throws Exception {
String sql="select * from tip where boardName='"+boardName+"'";
List<String[]> tips=new ArrayList<>();
Class.forName(driver);
try(Connection con = DriverManager.getConnection(uri, user, pass);
PreparedStatement prstm = con.prepareStatement(sql);
ResultSet rs = prstm.executeQuery();){
while(rs.next()){
String[] r=new String[5];
r[0]=rs.getString("tipId");
r[1]=rs.getString("title");
r[2]=rs.getString("publishTime");
r[3]=rs.getString("userName");
r[4]=rs.getString("boardName");
tips.add(r);
}
}
return tips;
}
@Override
public ResultSet select(int id) {
String condition="SELECT * From board where boardId="+ id;
Statement st = null;
ResultSet rs = null;
try {
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
}
try {
rs = st.executeQuery(condition);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
@Override
public boolean add(String title, String cont, String type) throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date=df.format(new Date());
HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
String userName=(String) session.getAttribute("name");
String condition ="INSERT INTO tip VALUES(?,?,?,?,?)";
int row=0;
Tip tip=null;
Class.forName(driver);
try (Connection con = DriverManager.getConnection(uri, user, pass);
PreparedStatement prstm = con.prepareStatement(condition);) {
tip=new Tip();
prstm.setString(1,title);
prstm.setString(2,cont);
prstm.setString(3,date);
prstm.setString(4,userName);
prstm.setString(5,type);
tip.setMessage("发布成功");
row=prstm.executeUpdate();
}catch(SQLException e){}
return row > 0 ? true : false;
}
@Override
public Tip show(int tipId) throws Exception {
String sql="select * from tip where tipId='"+tipId+"'";
Tip tips=null;
Class.forName(driver);
try (Connection con = DriverManager.getConnection(uri, user, pass);
PreparedStatement pstmt = con.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();) {
if(rs.next()){
tips=new Tip();
tips.setTipId(rs.getInt(1));
tips.setCont(rs.getString(3));
}
return tips;
}
}
@Override
public List<String[]> getTips(String key,int type) throws Exception {
HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
String userName=(String) session.getAttribute("name");
List<String[]> tips=new ArrayList<>();
String condition=null;
if(type==1){
condition="select * from tip where title='"+key+"' and userName='"+userName+"'";
}
else if(type==2){
condition="select * from tip where userName='"+userName+"'";
}
Class.forName(driver);
try(Connection con = DriverManager.getConnection(uri, user, pass);
PreparedStatement prstm = con.prepareStatement(condition);
ResultSet rs = prstm.executeQuery();){
while(rs.next()){
String[] row=new String[5];
row[0]=rs.getString("tipId");
row[1]=rs.getString("title");
row[2]=rs.getString("publishTime");
row[3]=rs.getString("userName");
row[4]=rs.getString("boardName");
tips.add(row);
}
}
return tips;
}
@Override
public boolean update(Tip tip) throws Exception{
Class.forName(driver);
int id=tip.getTipId();
String condition="update tip set detail=? where tipId=?";
int row=0;
Tip tips=new Tip();
try (Connection con = DriverManager.getConnection(uri, user, pass);
PreparedStatement prstm= con.prepareStatement(condition);
) {
prstm.setString(1,tip.getCont());
prstm.setInt(2,id);
tip.setMessage("修改成功!");
row=prstm.executeUpdate();
return row > 0 ? true : false; }
}
@Override
public Tip query(int tipId) throws Exception {
Tip tip=null;
String condition="select * from tip where tipId='"+tipId+"'";
Class.forName(driver);
try(Connection con=DriverManager.getConnection(uri, user, pass);
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);){
ResultSet rs=st.executeQuery(condition);
if(rs.next()){
tip=new Tip();
tip.setTipId(tipId);
tip.setCont(rs.getString(3));
}
}
return tip;
}
@Override
public boolean delById(int tipId) throws Exception {
String sql = "delete from tip where tipId=?";
int row = 0;
Tip tip=new Tip();
Class.forName(driver);
try (Connection con = DriverManager.getConnection(uri, user, pass);
PreparedStatement pstmt = con.prepareStatement(sql);) {
pstmt.setInt(1,tipId);
row = pstmt.executeUpdate();
tip.setMessage("删除成功!");
}
return row > 0 ? true : false;
}
}
![avatar](https://profile-avatar.csdnimg.cn/63a739d99ef946acb06d5302a9ff0907_m0_37279932.jpg!1)
xili80
- 粉丝: 9
- 资源: 7
最新资源
- PFC开关电源仿真与全桥LLC串联谐振电源Simulink模型详解,PFC开关电源仿真与全桥LLC串联谐振模型:Simulink建模及参数计算说明,PFC开关电源仿真 全桥LLC 单相Boost PF
- IEEE 39节点系统中的双馈风机风电场:带有虚拟惯量与综合控制的一次调频技术分析与应用模拟,IEEE 39节点风电一次调频系统:含双馈风机与虚拟惯量、下垂控制及综合惯量控制的时空分布研究,IEEE3
- 双馈永磁同步风电机组并网仿真模型及其短路故障分析:一个可调容量的9MW风电场模拟研究报告,“kw级别双馈永磁风电机组与PMSG并网仿真模型:风电场短路故障分析与多风速模拟研究”,双馈永磁风电机组并网仿
- 小数分频锁相环与环形振荡器结构在smic 28nm工艺下的设计原理及版图详解,小数分频锁相环与环形振荡器结构设计:SMIC 28nm技术下的版图设计与原理解析,小数分频锁相环,环形振荡器结构,smic
- 基于python的区块链简单实现
- 基于VSG控制的MMC变流器模块化研究:电网频率电压模拟下的功率输出与调节策略,基于VSG控制的MMC变流器模块化研究:电网频率电压模拟下的功率输出与调节策略,基于VSG控制(同步发电机控制)的模块化
- 永磁同步电机旋转高频信号注入法:零低速无位置控制的优化仿真研究及其低噪声低损耗优势分析,永磁同步电机旋转高频信号注入法:零低速无位置控制的优化仿真研究及与高频方波信号注入法的对比分析,永磁同步电机旋转
- Simulink光伏并网与同步发电机优化:频率惯量支撑与波形效果卓越,光强、温度及减载率可灵活调整,Simulink光伏并同步发电机频率惯量支撑技术研究:光强、温度与减载率可调的优化波形效果探索,si
- 基于java的区块链简单实现
- **Qt CPP多列时间轴控件:故事大纲展示与自由编辑的强大工具**,QtCPP时间轴控件:多功能时间管理,事件故事线编排的完美工具,Qt CPP实现的多列时间轴控件、可与多段字符串格式自由转、也可手
- 基于DSP28377的三相并网双二阶锁相环(DSOGI-PLL)程序设计方法探讨,基于DSP28377的三相并网双二阶锁相环DSOGI-PLL程序设计解析与实现,基于DSP28377的三相并网双二阶锁
- MATLAB中基于DWA算法的机器人局部避障路径规划过程解析:速度控制优化与仿真实验结果,MATLAB动态窗口算法DWA实现机器人局部避障路径规划的优化与仿真研究:速度控制下的最优路线决策,MATLA
- 电气安装工 中级工.pdf
- 基于dq旋转坐标系的构网变流器功率控制策略:下垂控制实现功率准确跟踪与电压前馈双闭环控制,基于dq坐标系的构网变流器功率控制策略:下垂控制结合PI控制实现精准功率跟踪与电压稳定,构网变流器功率控制控制
- 电气安装工 高级工.pdf
- KR_70_R2100_E_ES 20240417(1).stp
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)